[
https://issues.apache.org/jira/browse/SUREFIRE-2033?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17509354#comment-17509354
]
Robert James Oxspring commented on SUREFIRE-2033:
-------------------------------------------------
The documentation is also very clear about the precedence algorithm used to
choose the engine/runner to use:
[https://maven.apache.org/surefire/maven-surefire-plugin/examples/junit.html]
If nothing is configured, Surefire detects which JUnit version to use by the
following algorithm:
# if the JUnit 5 Platform Engine is present in the project
# use junit-platform
# if the JUnit version in the project >= 4.7 and the <<<parallel>>>
configuration parameter has ANY value
# use junit47 provider
# if JUnit >= 4.0 is present
# use junit4 provider
# else
# use junit3.8.1
Prior to M5, surefire worked as documented and actively preferred to use JUnit
5 if the engine is present. Since M5, switches away from this documented
behaviour and conditionally prefers to run the older junit-platform-runner, if
present, effectively preferring JUnit 4.
As discussed previously, we have a business requirement for our product to use
junit-platform-runner, but tests of our product are using JUnit 5 and have been
run via the junit-Jupiter-engine for as long as I can remember. You may find
this a silly requirement, and I’d love to change it, but that is what the
business requires.
Your main concern seems to be that use of junit-platform-runner is unusual and
not a recommended configuration. Given this, doesn’t it seem odd that M5
changes behaviour to actively prefer this unusual unrecommended runner over the
Junit Jupiter Engine that is also present?
> Regression: 3.0.0-M5 misidentifies JUnit 5 configuration as JUnit 4
> -------------------------------------------------------------------
>
> Key: SUREFIRE-2033
> URL: https://issues.apache.org/jira/browse/SUREFIRE-2033
> Project: Maven Surefire
> Issue Type: Bug
> Components: JUnit 5.x support
> Affects Versions: 3.0.0-M5
> Reporter: Robert James Oxspring
> Priority: Major
> Attachments: example.zip
>
>
> 3.0.0-M5 misidentifies a clearly JUnit 5 configuration and attempts to run
> using JUnit 4.
> In particular the attached project only has JUnit 5 dependencies:
> {code:java}
> <dependencies>
> <dependency>
> <groupId>org.junit.jupiter</groupId>
> <artifactId>junit-jupiter-engine</artifactId>
> <version>5.6.2</version>
> <scope>test</scope>
> </dependency>
> <dependency>
> <groupId>org.junit.platform</groupId>
> <artifactId>junit-platform-runner</artifactId>
> <version>1.6.2</version>
> <scope>test</scope>
> </dependency>
> </dependencies>{code}
> and a JUnit 5 test:
> {code:java}
> package pkg;
> import org.junit.jupiter.api.Test;
> class JUnit5Test {
> @Test
> public void test() {
> }
> }{code}
> When the project is run with with older version (as far back as 2.22.0) the
> test is found and run, but 3.0.0-M5 fails to run any test:
> {code:java}
> % mvn test -Dsurefire.version=2.22.0 | tail
> [INFO] Results:
> [INFO]
> [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
> [INFO]
> [INFO]
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Total time: 1.337 s
> [INFO] Finished at: 2022-03-03T09:42:27Z
> [INFO]
> ------------------------------------------------------------------------
> {code}
>
> {code:java}
> % mvn test -Dsurefire.version=3.0.0-M1 | tail
> [INFO] Results:
> [INFO]
> [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
> [INFO]
> [INFO]
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Total time: 1.708 s
> [INFO] Finished at: 2022-03-03T09:34:58Z
> [INFO]
> ------------------------------------------------------------------------
> % mvn test -Dsurefire.version=3.0.0-M2 | tail
> [INFO] Results:
> [INFO]
> [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
> [INFO]
> [INFO]
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Total time: 1.701 s
> [INFO] Finished at: 2022-03-03T09:36:26Z
> [INFO]
> ------------------------------------------------------------------------
> % mvn test -Dsurefire.version=3.0.0-M3 | tail
> [INFO] Results:
> [INFO]
> [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
> [INFO]
> [INFO]
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Total time: 1.612 s
> [INFO] Finished at: 2022-03-03T09:37:02Z
> [INFO]
> ------------------------------------------------------------------------
> % mvn test -Dsurefire.version=3.0.0-M4 | tail
> [INFO] Results:
> [INFO]
> [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
> [INFO]
> [INFO]
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Total time: 1.619 s
> [INFO] Finished at: 2022-03-03T09:37:37Z
> [INFO]
> ------------------------------------------------------------------------
> % mvn test -Dsurefire.version=3.0.0-M5 | tail
> [INFO] Results:
> [INFO]
> [INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
> [INFO]
> [INFO]
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Total time: 1.344 s
> [INFO] Finished at: 2022-03-03T09:38:01Z
> [INFO]
> ------------------------------------------------------------------------{code}
> Note the final run above using 3.0.0-M5 and logging: {{Tests run: 0}}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)