Я перешел на JUnit 5. В своих интеграционных тестах я использую PowerMock, которая, к сожалению, пока не поддерживает последнюю версию JUnit (см. https://github.com/powermock/powermock/issues/830). Поэтому я решил запустить модульные тесты с более новой версией, которая определена по умолчанию в родительском POM, и выполнять интеграционные тесты только для JUnit 4. Я попытался переопределить плагин в дочернем POM, но тесты не получат выполнено, вероятно, потому что тесты не распознаются как тесты JUnit 4, поэтому плагин maven-failsafe-plugin не находит ни одного интеграционного теста для выполнения.
Родительский POM:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.0.0-M4</version>
<executions>
<execution>
<id>integration-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<argLine>${failsafeOverridableArgLine}
-Djacoco-agent.destfile=${project.build.directory}/coverage-reports/jacoco-it.exec</argLine>
<skipTests>${skip.integration.tests}</skipTests>
<includes>
<include>**/*IntegrationTest.java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
...
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.5.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.5.2</version>
<scope>test</scope>
</dependency>
Дочерний POM:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.0.0-M4</version>
<executions>
<execution>
<id>integration-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration combine.self="override">
<argLine>${failsafeOverridableArgLine}
-Djacoco-agent.destfile=${project.build.directory}/coverage-reports/jacoco-it.exec</argLine>
<skipTests>${skip.integration.tests}</skipTests>
<includes>
<include>**/*IntegrationTest.java</include>
</includes>
<classpathDependencyExcludes>
<classpathDependencyExclude>org.junit.jupiter:junit-jupiter</classpathDependencyExclude>
<classpathDependencyExclude>org.junit.jupiter:junit-jupiter-engine</classpathDependencyExclude>
</classpathDependencyExcludes>
<additionalClasspathElements>
<additionalClasspathElement>${settings.localRepository}/junit/junit/4.12/junit-4.12.jar</additionalClasspathElement>
</additionalClasspathElements>
</configuration>
</execution>
</executions>
</plugin>
Корректна ли эта конфигурация?