我们的项目结构看起来像这样(抱歉格式化):
server/
pom.xml
src/
main/
java/
test/
java/
it/
java/
我希望mvn clean test
跳过其中的所有测试/ java ,无论是否为测试名称。我看到的解决方案依赖于集成测试在不同的包中或在名称上有一些前缀,以表明它们是集成测试。
有没有办法在运行mvn clean test
时排除/ java运行?最终,我们希望能够通过运行mvn integration-test来运行集成测试。
答案 0 :(得分:1)
你最好的可能是使它成为一个多模块项目,然后在它模块中跳过基于不同maven属性的测试。这将为您提供所需的灵活性。
答案 1 :(得分:1)
我不认为src / it / java是maven已知的文件夹,所以如果你把测试放在那里,它们会被忽略,因为它是一个随机文件夹到maven? :)
反正。要执行集成测试,我建议使用为此构建的maven-failsafe-plugin:http://maven.apache.org/surefire/maven-failsafe-plugin/ 它还依赖于某些命名约定来区分集成测试和标准测试,但我可以重新配置testSourceDirectory。但是我认为如果你改变那个文件夹,可能需要首先编译这些类(但这应该是可能的)。
然后将单元测试配置为由maven-surefire-plugin执行。
我通常会使用surefire-plugin执行所有测试但排除IntegrationTests(使用配置中的模式),failafe-plugin包括那些但排除标准测试。但我的测试名称不同,所以我可以使用文件夹的约定。