【发布时间】:2015-07-17 11:15:55
【问题描述】:
如果与-Dit.test=full.Classname 结合使用,在命令行上重写属性skipITs 的值似乎会被maven 忽略。指定的故障安全测试将不会运行(情况一)。
与不带it.test 开关的这种指定skipITs 不同,会导致运行现有的故障安全测试(情况二)。
背景:我试图将安全测试与故障安全测试隔离开来,即运行两种类型或仅运行一种。 Maven 调用是:
mvn -Pintegration -DskipTests=true -DskipITs=false -Dit.test=full.Classname verify
在第一种情况下:
mvn -Pintegration -DskipTests=true -DskipITs=false verify
在第二个。
相关配置(pom.xml,sn-ps only)为:
<properties>
<skipTests>false</skipTests>
<skipITs>false</skipITs>
</properties>
(这些是默认值)和
<profiles>
<profile>
<id>integration</id>
<build>
<plugins>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<id>custom<id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<skipTests>${skipITs}</skipTests>
<skip>${skipITs}</skip>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
您是否也观察到了这一点,或者您最终找到了更好的工作方法?
【问题讨论】:
-
为什么不使用插件提供的默认值。
-DskipITs=true跳过 maven-failsafe-plugin 的集成测试,-DskipTests=true跳过 maven-surefire-plugin 的单元测试。为什么要定义属性? -
@khmarbaise
-DskipTests=true也会阻止 Failsafe 插件执行任何测试。 OP 想跳过 Surefire 但运行 Failsafe。
标签: maven maven-surefire-plugin maven-failsafe-plugin