2013-02-08 112 views
1

我想统计失败的测试,并在所有测试完成后仅失败一次。这些测试每晚由Jenkins运行,并在出现故障或错误时报告结果。问题是我甚至无法开始计数,因为这只有failureProperty和errorProperty可以是true或false,但是当它到达第一个失败或错误测试时,它会停止并失败。我没有找到与谷歌良好的解决方案,他们推荐我这些属性,但他们没有做我所需要的。ANT Jenkins单元测试 - 计数失败测试

这里是代码:

 <junit printsummary="true" fork="yes" forkmode="once" 
showoutput="false" haltonfailure="no" maxmemory="1024m" 
errorProperty="test.failed" failureProperty="test.failed"> 
      <classpath refid="junit.classpath" /> 
      <batchtest fork="yes" todir="${junit.dir}/raw" > 
       <formatter type="xml" /> 
       <fileset dir="${classes.dir}"> 
        <include name="**/*Test.class" /> 
        <exclude name="*ear*/**"/> 
        <exclude name="**/Base*.class" /> 
        <exclude name="**/JNDI*.class" /> 
       </fileset> 
      </batchtest> 
     </junit> 
    <fail message="At least one test failed or has errors, please check test results in Jenkins to see details!" if="test.failed" /> 

难道我错过了什么重要呢?看来haltonfailure =“no”参数在这种情况下不起作用。

如果你能帮助我,请提前致谢!

+1

可能的重复[我如何让Ant JUnit任务运行所有测试,然后在任何测试失败时停止构建的其余部分](http://stackoverflow.com/questions/4038547/how-我可以拥有蚂蚁junit任务运行所有测试然后停止其余的这个BU) – Miquel 2013-02-08 14:24:55

+0

我发现了什么问题。 _errorProperty =“test.failed”failureProperty =“test.failed”_与_fail_一起工作我有更多的单元测试,所以脚本只能存活第一个!我有点失明,但是这给了我一个想法。谢谢你们! – CsBalazsHungary 2013-02-08 14:33:09

+1

为了记录,我做了一个全局变量,它是错误的,如果测试失败,我切换为真。然后,我运行所有单独的测试,并将其称为失败蚂蚁方法。 – CsBalazsHungary 2013-02-08 14:47:34

回答

1

您需要使用蚂蚁的junitreport生成报告。这会输出一个xml文件,如果你有兴趣的话,jenkins会很好地计数和显示给你,还有演化图表等等。

+0

感谢它会很好,但在这种情况下,我可以在蚂蚁中调用吗?我的意思是詹金斯需要这个发送警告邮件。这是为什么我需要这个,因为我想在发送失败时发送邮件。 – CsBalazsHungary 2013-02-08 14:08:01

+0

@CsBalazsHungary Jenkins默认情况下不会失败构建测试失败。相反,它会认为它“不稳定”。所以,你会得到三种可能的结果(所有这些都可以发送电子邮件,如果你想的话):蓝色=成功,黄色=不稳定(测试失败),红色=失败 – Miquel 2013-02-08 14:10:10

+0

嗯,但我编辑的问题,它不清楚我真的想要这个。:) – CsBalazsHungary 2013-02-08 14:10:20

1

将JUnit属性haltonerrorhaltonfailure设置为false。然后使用各种报告工具来解析生成的报告。该报告可以采用XML格式,您可以使用JUnitreport来解析文件。我更喜欢Jenkins,它会向我展示每个构建,以及失败的JUnit测试的数量,以及各种不错的报告。其他人使用各种XSLT程序(这实际上是JUnitreport的)。

Word'o警告:如果您使用JUnitReport,则可能需要在Ant的lib目录中添加一些额外的jar。我有一段时间没有使用JUnitReport,但是我记得我需要Xalan,但是这是Java现在提供的。

+0

不幸的是,如果我使用errorproperty和failureproperty,然后使用这些属性失败,单元测试会在首次发生故障或错误时停止运行。但是,谢谢,如果没有办法杀死ant任务,这将是有用的 – CsBalazsHungary 2013-02-08 14:17:26

1

另外检查this answer从另一个类似的问题如何配置您的junit目标执行和报告生成。生成报告后,使用JUnit测试报告生成后生成操作进行配置。

还有你试过用printsummary =“withOutAndErr”并检查?这对我来说完全正常。