我有一个包含多个模块的项目。当所有测试通过时,Maven测试都会运行它们。
当第一个模块中的测试失败时,maven将不会继续下一个项目。我在Surefire设置中将testFailureIgnore设置为true,但它没有帮助。
如何让maven运行所有测试?
答案 0 :(得分:311)
来自文档:
-fae
,--fail-at-end
之后才会失败。允许所有未受影响的构建继续
-fn
,--fail-never
无论项目结果如何,都不会使构建失败
因此,如果您正在测试一个模块而不是使用-fae
安全模块。
否则,如果您有多个模块,并且如果您希望所有模块都经过测试(即使是那些依赖于失败的测试模块的模块),您应该运行mvn clean install -fn
。
-fae
将继续使用具有失败测试的模块(将运行所有其他测试),但将跳过所有依赖于它的模块。
答案 1 :(得分:89)
我刚刚找到了“-fae”参数,这会导致Maven运行所有测试而不会在失败时停止。
答案 2 :(得分:73)
您可以使用surefire 2.6进行测试,并使用testFailureIgnore=true
配置surefire。或者在命令行上:
mvn install -Dmaven.test.failure.ignore=true
答案 3 :(得分:29)
尝试在根项目的pom.xml中为surefire插件添加以下配置:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
答案 4 :(得分:13)
快速回答:
mvn -fn test
使用嵌套项目构建。