283

我有一个包含多个模块的项目。当所有测试都通过时,Maven 测试会运行它们。

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

无论早期失败如何,如何让 Maven 运行所有测试?

4

5 回答 5

410

Maven 嵌入器文档

-fae,--fail-at-end 仅在之后的构建失败;允许所有未受影响的构建继续

-fn,--fail-never 无论项目结果如何,都不要让构建失败

因此,如果您正在测试一个模块,那么使用-fae.

否则,如果您有多个模块,并且您希望对所有模块进行测试(即使是依赖于失败测试模块的模块),您应该运行mvn clean install -fn.
-fae将继续使用测试失败的模块(将运行所有其他测试),但将跳过所有依赖它的模块。

于 2012-09-27T08:02:58.283 回答
107

我刚刚找到了-fae导致 Maven 运行所有测试并且不会在失败时停止的参数。

于 2010-11-13T21:18:52.043 回答
103

使用. _ _<testFailureIgnore>true</testFailureIgnore>

或者在命令行上:

mvn install -Dmaven.test.failure.ignore=true
于 2010-11-14T07:36:42.887 回答
44

尝试在根项目的 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>
于 2010-11-24T07:51:20.840 回答
21

快速回答:

mvn -fn test

适用于嵌套项目构建。

于 2014-04-17T15:22:33.500 回答