当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《让Maven运行所有测试,即使有些失败》经验,为你挑选了5个好方法。

我有一个包含几个模块的项目.当所有测试通过后,Maven测试将全部运行.

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

如何让maven运行所有测试?



1> despot..:

从文档:

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

-fn,无论项目结果如何,都--fail-never 不会失败

因此,如果您正在测试一个模块而不是您正在使用的模块-fae.

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


我刚刚测试了选项`--fail-never`.即使存在编译错误,Maven也不会使构建失败.如果我在Jenkins上使用这个选项,即使它有很多编译错误,构建看起来也很成功.在这种情况下,我更喜欢`-Dmaven.test.failure.ignore = true`,让詹金斯分析一下万无一失的报道.

2> ripper234..:

我刚刚找到了"-fae"参数,它导致Maven运行所有测试而不是在失败时停止.


在多模块项目中,依赖于未通过测试的模块的模块将被跳过。使用-fn代替。
遗憾的是,当我将它传递给TeamCity时,此参数不起作用.
@ ripper234你有没有办法让它在TeamCity上运行?

3> Pascal Thive..:

你可以用surefire 2.6进行测试,并配置surefire testFailureIgnore=true.或者在命令行上:

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


IIRC这对整个构建没有失败的影响,而不是最终运行所有测试和失败.

4> nybon..:

尝试在root项目的pom.xml中为surefire插件添加以下配置:


  [...]
  
    
      
        org.apache.maven.plugins
        maven-surefire-plugin
        
          true
        
      
    
  
  [...]



5> rustyx..:

快速回答:

mvn -fn test

适用于嵌套项目构建.

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有