[
https://issues.apache.org/jira/browse/SUREFIRE-1963?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Slawomir Jaranowski updated SUREFIRE-1963:
------------------------------------------
Description:
When multiple test frameworks are present on project classpath surefire chooses
one framework for running test.
During automatically provider discover some of type test can be *skipped*
without any knowledge and information for developer.
It is danger situation than developer can add *second* test framework to
project and in the result some of test will be *skipped silently.*
We can force usage one or more needed providers by adding those to plugin
dependency and we can have control on executing test.
h3. Proposition
- add options {{multipleFrameworks}} *empty* (not set) by default, with
possible value *warn* or *fail*
h3. Scenario 1 - default
h4. when
- {{multipleFrameworks = *empty* - not set}}
- many tests framework on classpath
- no providers on plugin dependency
h4. then
- current behavior - choose first provider without warning about skipped test
h3. Scenario 2
h4. when
- {{multipleFrameworks = *warn*}}
- many tests framework on classpath
- no providers on plugin dependency
h4. then
- print warn about multiple providers
h3. Scenario 3
h4. when
- {{multipleFrameworks = *fail*}}
- many tests framework on classpath
- no providers on plugin dependency
h4. then
- print error about multiple providers and break build
h3. Scenario 4
h4. when
- many tests framework on classpath
- selected providers on plugin dependency
h4. then
- ignore {{multipleFrameworks}}
- use providers from dependency list, no warning
was:
When multiple test frameworks are present on project classpath surefire chooses
one framework for running test.
During automatically provider discover some of type test can be *skipped*
without any knowledge and information for developer.
It is danger situation than developer can add *second* test framework to
project and in the result some of test will be *skipped silently.*
We can force usage one or more needed providers by adding those to plugin
dependency and we can have control on executing test.
h3. Proposition
- add options {{failOnMultipleFrameworks}} *false* by default
h3. Scenario 1 - default
h4. when
- {{failOnMultipleFrameworks = *false*}}
- many tests framework on classpath
- no providers on plugin dependency
h4. then
- current behavior - choose first provider with warning about skipped elses
h3. Scenario 2
h4. when
- {{failOnMultipleFrameworks = *true*}}
- many tests framework on classpath
- no providers on plugin dependency
h4. then
- fail plugin execution with reason
h3. Scenario 3
h4. when
- many tests framework on classpath
- selected providers on plugin dependency
h4. then
- ignore {{failOnMultipleFrameworks}}
- use providers from dependency list, no warning
> Detecting multiple test-frameworks
> ----------------------------------
>
> Key: SUREFIRE-1963
> URL: https://issues.apache.org/jira/browse/SUREFIRE-1963
> Project: Maven Surefire
> Issue Type: New Feature
> Reporter: Slawomir Jaranowski
> Priority: Major
>
> When multiple test frameworks are present on project classpath surefire
> chooses one framework for running test.
> During automatically provider discover some of type test can be *skipped*
> without any knowledge and information for developer.
> It is danger situation than developer can add *second* test framework to
> project and in the result some of test will be *skipped silently.*
> We can force usage one or more needed providers by adding those to plugin
> dependency and we can have control on executing test.
> h3. Proposition
> - add options {{multipleFrameworks}} *empty* (not set) by default, with
> possible value *warn* or *fail*
> h3. Scenario 1 - default
> h4. when
> - {{multipleFrameworks = *empty* - not set}}
> - many tests framework on classpath
> - no providers on plugin dependency
> h4. then
> - current behavior - choose first provider without warning about skipped test
> h3. Scenario 2
> h4. when
> - {{multipleFrameworks = *warn*}}
> - many tests framework on classpath
> - no providers on plugin dependency
> h4. then
> - print warn about multiple providers
> h3. Scenario 3
> h4. when
> - {{multipleFrameworks = *fail*}}
> - many tests framework on classpath
> - no providers on plugin dependency
> h4. then
> - print error about multiple providers and break build
> h3. Scenario 4
> h4. when
> - many tests framework on classpath
> - selected providers on plugin dependency
> h4. then
> - ignore {{multipleFrameworks}}
> - use providers from dependency list, no warning
--
This message was sent by Atlassian Jira
(v8.20.1#820001)