如果发生单元测试失败,则不会执行Maven报告插件

时间:2010-10-01 19:55:21

标签: maven-2 hudson

如果单元测试失败,Maven报告部分中的任何插件都不会执行。

我发现我可以在这里设置maven.test.failure.ignore = true - http://jira.codehaus.org/browse/SUREFIRE-247这种方法的问题是,即使存在单元测试失败,我们的哈德森构建也是成功的。

我真正想做的是设置报告插件maven-surefire-report-plugin以在阶段上使用构建插件运行,但我无法使其工作。

如果单位测试失败,如何让Maven报告插件执行?

5 个答案:

答案 0 :(得分:2)

首先运行:mvn test或mvn install然后,如果测试失败,请运行以下目标以生成上面执行的测试结果的报告:mvn -Dmaven.test.skip = true surefire-report:report

答案 1 :(得分:1)

在您发布的链接中:

  

使用最新版本(2.1.2),我知道了   一条消息说“有一些   测试失败,“但我没有报告   在任何地方,无论我是否指定   变量,或者我是否指定   插件中的“testFailureIgnore”   配置。我的报告很好   2.0,但不是2.1.2。

您需要版本2,1还是可以使用2.0版本的Maven?

答案 2 :(得分:1)

您在2.1.2中看到的错误是因为您需要在插件中执行forkmode设置。

设置forkmode = never并尝试它(我怀疑你的useSystemclassloader属性可能存在问题)。

否则,请使用maven-surefire插件版本2.5,即使很少有测试失败,也应该确定工作并生成万无一失的插件。

答案 3 :(得分:1)

如果报告已在执行后生成,请使用surefire-report:仅报告插件。

答案 4 :(得分:0)

我遇到了同样的问题,这是由于对报告插件的错误调用。

maven命令的正确执行是:mvn surefire-report:report

这将自动运行测试阶段,如果失败,它将生成报告。

检查文档: http://maven.apache.org/surefire/maven-surefire-report-plugin/report-mojo.html

希望这有帮助!! :d