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

Torsten Mingers edited comment on SUREFIRE-1651 at 3/25/19 9:36 AM:
--------------------------------------------------------------------

I created a small project wich reflects the behavior.

h1. Setup
- All tests are pure JUnit4 tests
- In _maven-surefire-plugin_all tests in the category "IntegrationTest" are 
excluded.
- There is a profile _integrationtest_ wich includes all tests in the category 
"IntegrationTest" from _maven-failsafe-plugin_
- There are dependency configurations for JUnit4 and JUnit5 (incl. Vintage) to 
be activated / deactivated for testing purposes

h2. Tests
h3. JUnit4, just Unit-Tests
*Prerequisite*: disable all JUnit5 dependencies in pom.xml
- call _MVN clean verify_
-- (/) no Unit-Tests are performed by surefire
-- (/) 2 Integration-Tests are performed by failsafe

h3. JUnit4, Integrationtests
*Prerequisite*: enable all JUnit5 dependencies in pom.xml
- call _MVN clean verify -DintegrationTest_
-- (/) 2 Unit-Tests are performed by surefire
-- (/) no Integration-Tests are performed by failsafe

h3. JUnit5, just Unit-Tests
*Prerequisite*: disable all JUnit5 dependencies in pom.xml
- call _MVN clean verify_
-- (/) 2 Unit-Tests are performed by surefire
-- (x) 2 Integration-Tests are performed by failsafe
-- --> These tests should not have been performed

h3. JUnit5, Integrationtests
*Prerequisite*: enable all JUnit5 dependencies in pom.xml
- call _MVN clean verify -DintegrationTest_
-- (/) 2 Unit-Tests are performed by surefire
-- (/) 2 Integration-Tests are performed by failsafe

See  [^IntegrationTestJUnit5Vintage.zip] 


was (Author: tmi):
I created a small project wich reflects the behavior.

h1. Setup
- All tests are pure JUnit4 tests
- In _maven-surefire-plugin_all tests in the category "IntegrationTest" are 
excluded.
- There is a profile _integrationtest_ wich includes all tests in the category 
"IntegrationTest" from _maven-failsafe-plugin_
- There are dependency configurations for JUnit4 and JUnit5 (incl. Vintage) to 
be activated / deactivated for testing purposes

h2. Tests
h3. JUnit4, just Unit-Tests
*Prerequisite*: disable all JUnit5 dependencies in pom.xml
- call _MVN clean verify_
-- (/) no Unit-Tests are performed by surefire
-- (/) 2 Integration-Tests are performed by failsafe

h3. JUnit4, Integrationtests
*Prerequisite*: disable all JUnit5 dependencies in pom.xml
- call _MVN clean verify -DintegrationTest_
-- (/) 2 Unit-Tests are performed by surefire
-- (/) no Integration-Tests are performed by failsafe

h3. JUnit5, just Unit-Tests
*Prerequisite*: disable all JUnit5 dependencies in pom.xml
- call _MVN clean verify_
-- (/) 2 Unit-Tests are performed by surefire
-- (x) 2 Integration-Tests are performed by failsafe
-- --> These tests should not have been performed

h3. JUnit5, Integrationtests
*Prerequisite*: disable all JUnit5 dependencies in pom.xml
- call _MVN clean verify -DintegrationTest_
-- (/) 2 Unit-Tests are performed by surefire
-- (/) 2 Integration-Tests are performed by failsafe

See  [^IntegrationTestJUnit5Vintage.zip] 

> JUnit5 Vintage + Maven-Failsafe + Category = ???
> ------------------------------------------------
>
>                 Key: SUREFIRE-1651
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-1651
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: JUnit 5.x support
>    Affects Versions: 2.22.1
>            Reporter: Torsten Mingers
>            Priority: Major
>         Attachments: IntegrationTestJUnit5Vintage.zip
>
>
> I finally managed to switch our test infrastructure to JUnit5. Strictly 
> speaking, it is the first step and the "old" tests are all still JUnit4 and 
> run via the Vintage engine.
> I currently have a problem with this combination.
>  
> *Some details:*
> We separate unit tests and integration tests with @Category annotations and 
> then filter them out in Surefire and Failsafe. I'll add the setup below.
> Since the change to JUnit5-Vintage, filtering has stopped working and all 
> tests are always running.
> In JUnit5 the filtering happens via Tags. I can not specify these in 
> JUnit4-based tests.
> According to the JUnit5 documentation, the categories should continue to 
> work: 
> https://junit.org/junit5/docs/current/user-guide/#migrating-from-junit4-categories-support
> However, in the documentary of Surefire (or Failsafe) only tags covered: 
> https://maven.apache.org/surefire/maven-surefire-plugin/examples/junit-platform.html
> The configuration for JUnit5 tags is done in _groups_ as previously with the 
> categories in JUnit4. But the configuration does not seem to work when using 
> JUnit5 Vintage engine to run the tests.
> Is there a way to configure the Maven Failsafe and Surefire plugins to work 
> with tags *and* categories?
> For a hint, I would be very grateful.
>  
> *Configuration used*
> {code}<plugins>
>       <plugin>
>               <groupId>org.apache.maven.plugins</groupId>
>               <artifactId>maven-surefire-plugin</artifactId>
>               <version>2.22.1</version>               
>               <configuration>
>                       <includes>
>                               <include>**/*.class</include>
>                       </includes>
>                       <excludedGroups>
>                               net.veda.horizon.test.IntegrationTest, 
> net.veda.horizon.test.IntegrationTestGraphDB, 
> net.veda.horizon.test.IntegrationPermissionTest
>                       </excludedGroups>
>               </configuration>
>       </plugin>
> </plugins>
> ...
> <profiles>
>       <profile>
>               <id>integrationtest</id>
>               <activation>
>                       <property>
>                               <name>integrationTest</name>
>                       </property>
>               </activation>
>               <build>
>                       <plugins>
>                               <plugin>
>                                       
> <groupId>org.apache.maven.plugins</groupId>
>                                       
> <artifactId>maven-failsafe-plugin</artifactId>
>                                       <version>2.19.1</version>
>                                       <configuration>
>                                               <includes>
>                                                       
> <include>**/*.java</include>
>                                               </includes>
>                                               
> <groups>net.veda.horizon.test.IntegrationTest</groups>
>                                       </configuration>
>                                       <executions>
>                                               ...
>                                       </executions>
>                               </plugin>
>                       </plugins>
>               </build>
>       </profile>
> ...
> </profiles>{code}
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to