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

时间:2010-11-13 21:08:16

标签: java maven-2 surefire

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

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

如何让maven运行所有测试?

5 个答案:

答案 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

使用嵌套项目构建。