我们的项目结构如下所示(很抱歉格式化):
server/
pom.xml
src/
main/
java/
test/
java/
it/
java/我希望mvn clean test跳过它/java中的所有测试,而不管测试的名称如何。我看到的解决方案依赖于集成测试在不同的包中,或者在名称上有前缀,以表明它们是集成测试。
当我运行mvn clean test时,有没有一种方法可以将它/java排除在运行之外?最终,我们希望能够通过运行mvn集成测试来运行集成测试。
发布于 2013-07-17 15:43:47
最好的方法可能是让它成为一个多模块的项目,然后在it模块中跳过基于不同maven属性的测试。这将允许您的灵活性,您正在寻找。
发布于 2013-07-17 15:57:43
我不认为src/it/java是maven已知的文件夹,所以如果您将测试放在其中,它们将被忽略,因为它是maven的随机文件夹?)
不管怎么说。要执行集成测试,我建议使用maven-故障安全插件,它是为此构建的:http://maven.apache.org/surefire/maven-failsafe-plugin/,它也依赖一些命名约定来区分集成测试和标准测试,但是我可以重新配置testSourceDirectory。但我认为,如果您更改该文件夹(但这应该是可能的),可能需要首先编译这些类。
然后将单元测试配置为由maven-surefire-plugin执行。
我通常要做的是让照管插件执行所有测试,但排除IntegrationTests (在配置中使用模式),而故障安全插件包括这些测试,但不包括标准测试。但是我有不同的测试名称,这样我就可以为文件夹使用约定。
https://stackoverflow.com/questions/17703781
复制相似问题