我已在父POM中指定使用Failsafe。当我在我的多模块版本上运行mvn verify
时,没有任何Failsafe运行的提示 - 它在控制台输出中无处可见。
如果我将相同的<plugin>
定义添加到子POM中,它会运行(尽管它抱怨无法找到\failsafe-reports\failsafe-summary.xml
)。
当然应该继承哪些插件要运行?
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.15</version>
<executions>
<execution>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
答案 0 :(得分:2)
首先,您应该在pluginManagement中定义它,如下所示:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.15</version>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
重要的是使用目标integration-test
和verify
,而不仅仅是verify
。从上面的Aaprt你需要定义这样的实际用法:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
</plugin>
</plugins>
</build>
[...]
</project>
您可以通过添加上述代码段,在要使用集成测试的每个子模块中单独激活使用情况。这通常仅在几个模块中。
答案 1 :(得分:0)
您需要添加目标integration-test
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
目标验证,只检查生成的报告(failsafe-summary.xml)以查看是否存在测试错误,并使构建失败。
目标集成测试实际上运行测试,默认情况下至少匹配IT*.java
,IT.java
和ITCase.java
的类。