我的maven存储库中有一个包含junit测试的jar,它应该在不同的项目中运行,因为它能够检查项目并测试它的某些功能.不幸的是,正如此功能请求所示,surefire不会接收jar中包含的测试.
在功能请求中,他们建议解压缩jar然后由surefire执行.
我使用maven-dependency-plugin成功解压缩了jar,但无论如何都没有执行包含的测试.这就是我如何配置maven-dependency-plugin以解压我的jar:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>process-test-classes</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>de.mwx.test</groupId>
<artifactId>selenium-test-base</artifactId>
<version>0.1</version>
<overWrite>true</overWrite>
<outputDirectory>
${project.build.directory}/classes
</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
任何帮助都会得到满足.
为了清理一个巨大的烂摊子的事,我开始把我的测试代码都在一个普通的Java项目(所有的src/main/JAVA),然后声明,作为一个<scope>test</scope>在另一个项目的依赖,并期待要运行的测试.
没有这样的运气.surefire想要运行它可以在源代码中看到的测试.
我可以看到一个可悲的是显而易见的解决方案在这里涉及构建辅助性插件,并添加测试到测试编译环境为源目录,但我希望避免它.
如果你想知道,这一切的原因是,使用故障安全插件的运行一些集成测试的POM的配置有这么复杂,我想从测试的运行打出了测试类的编译.