【发布时间】:2020-03-20 12:31:57
【问题描述】:
我已迁移到 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>
这个配置正确吗?
【问题讨论】:
标签: maven-3 junit4 maven-failsafe-plugin