我有一个包含多个模块的项目。当所有测试都通过时,Maven 测试会运行它们。
当第一个模块中的测试失败时,maven 将不会继续下一个项目。我在 Surefire 设置中将 testFailureIgnore 设置为 true,但它没有帮助。
无论早期失败如何,如何让 Maven 运行所有测试?
我有一个包含多个模块的项目。当所有测试都通过时,Maven 测试会运行它们。
当第一个模块中的测试失败时,maven 将不会继续下一个项目。我在 Surefire 设置中将 testFailureIgnore 设置为 true,但它没有帮助。
无论早期失败如何,如何让 Maven 运行所有测试?
-fae
,--fail-at-end
仅在之后的构建失败;允许所有未受影响的构建继续
-fn
,--fail-never
无论项目结果如何,都不要让构建失败
因此,如果您正在测试一个模块,那么使用-fae
.
否则,如果您有多个模块,并且您希望对所有模块进行测试(即使是依赖于失败测试模块的模块),您应该运行mvn clean install -fn
.
-fae
将继续使用测试失败的模块(将运行所有其他测试),但将跳过所有依赖它的模块。
我刚刚找到了-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>
快速回答:
mvn -fn test
适用于嵌套项目构建。