Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.22.1
-
None
Description
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
<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>