[ 
https://issues.apache.org/jira/browse/SUREFIRE-2033?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17509342#comment-17509342
 ] 

Tibor Digana edited comment on SUREFIRE-2033 at 3/19/22, 9:30 PM:
------------------------------------------------------------------

[~sjaranowski]
[~roxspring]
The documentation exists very long time. 
https://maven.apache.org/surefire/maven-surefire-plugin/examples/junit-platform.html
The Surefire is very intelligent because it downloads and uses Vintage and 
Jupiter engines even if you do not specify them in the project dependencies. 
It's enough to use API, e.g. org.junit.jupiter:junit-jupiter-api or 
junit:junit:4.13.2.
Let's go back to the problem with {{junit-platform-runner}}. In reality 
{{junit-platform-runner}} is an adapter from JUnit4 to JUnit5. It is not reach 
JUnit5 runner. In the Maven perspective it can be used only if you hard code 
{{surefire-junit4}} provider under the plugin in its dependencies but your 
project contains dependencies for JUnit5 tests.

So the key point of {{junit-platform-runner}} is to have JUnit4 executor 
(junit4 surefire provider in our case) and JUnit5 tests. This is very silly due 
to use can use {{surefire-junit-platform}} provider instead of JUnit4 executor 
and you can avoid using {{junit-platform-runner}}. It is silly to use 
{{junit-platform-runner}} unless you have a strong resources/financial reason 
to not spending the time when rewriting JUnit4 Suites to JUnit5 Suites. The 
JUnit5 would not support {{junit-platform-runner}}.


was (Author: tibor17):
[~sjaranowski]
[~roxspring]
The documentation exists very long time. 
https://maven.apache.org/surefire/maven-surefire-plugin/examples/junit-platform.html
The Surefire is very intelligent because it downloads and uses Vintage and 
Jupiter engines even if you do not specify them in the project dependencies. 
It's enough to use API, e.g. org.junit.jupiter:junit-jupiter-api or 
junit:junit:4.13.2.
Let's go back to the problem with {{junit-platform-runner}}. In reality 
{{junit-platform-runner}} is an adapter from JUnit4 to JUnit5. It is not reach 
JUnit5 runner. In the Maven perspective it can be used only if you hard code 
{{surefire-junit4}} provider under the plugin in its dependencies but your 
project contains dependencies for JUnit5 tests.

So the key point of {{junit-platform-runner}} is to have JUnit4 executor 
(junit4 surefire provider in our case) and JUnit5 tests. This is very silly due 
to use can use {{surefire-junit-platform}} provider instead of JUnit4 executor 
and you can avoid using {{junit-platform-runner}}. It is silly to use 
{{junit-platform-runner}} unless you have a strong resources/financial reason 
to spending the time when rewriting JUnit4 Suites to JUnit5 Suites. The JUnit5 
would not support {{junit-platform-runner}}.

> 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)

Reply via email to