我有一个具有结构的多模块 Maven 项目
parent
pom.xml
module
pom.xml
core-api
pom.xml
integ-tests
pom.xml
我有用于执行单元测试'*Test.java'的maven surefire插件设置,它们是'core-api'模块中的房屋。
我们在一个单独的“integ-tests”模块中进行了缓慢的长时间运行的集成测试。我们也使用 '*Test.java' 进行集成测试。
我们需要能够编译所有源代码,但希望将 'integ-test' 排除在默认 maven 'test' 阶段的一部分运行之外。我们计划使用配置文件来启用“集成测试”模块的测试阶段。我不想使用“故障安全”插件。
概述组合的矩阵在这里
mvn | core | integ-test
test | run unit tests | exclude
test -PintegTest | unit tests | integ tests
我已经在我的父 pom 中定义了 surefire 插件,其属性“skip.integ.tests”将通过配置文件“-PintegTests”进行控制。
<properties>
<skip.integ.tests>true</skip.integ.tests>
</properties>
..
<build>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
</build>
..
<profiles>
<profile>
<id>integTests</id>
<properties>
<skip.integ.tests>false</skip.integ.tests>
</properties>
</profile>
</profiles>
在我的“integ-test”pom 中,我覆盖了“maven-surefire-plugin”配置并设置了“skipTests”配置以查看属性的值。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>${skip.integ.tests}</skipTests>
</configuration>
</plugin>
</plugins>
</build>
我的问题是 integ-test 模块测试在每种情况下都运行。关于我在哪里设置错误的任何想法?