让Maven运行所有测试,即使有些测试失败

我有一个项目与几个模块。当所有测试都通过时,Maven测试将运行它们。

当第一个模块中的测试失败时,maven将不会继续到下一个项目。我有testFailureIgnore设置为true在Surefire设置,但它没有帮助。

如何使maven运行所有测试而不考虑以前的失败?

181408 次浏览

我刚刚发现-fae参数,它导致Maven运行所有测试,而不是在失败时停止。

使用<testFailureIgnore>true</testFailureIgnore>配置准不会有错的

或者在命令行中:

mvn install -Dmaven.test.failure.ignore=true

尝试在根项目的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>

Maven Embedder文档:

-fae, --fail-at-end __ ABC2

-fn, --fail-never __ ABC2

因此,如果你正在测试一个模块,那么使用-fae是安全的。

否则,如果你有多个模块,并且如果你想测试所有这些(甚至是那些依赖于失败的测试模块的),你应该运行mvn clean install -fn
. 0 -fae将继续用于测试失败的模块(将运行所有其他测试),但依赖于它的所有模块将被跳过

一个简单的回答:

mvn -fn test

使用嵌套项目构建。