我想统计失败的测试,并在所有测试完成时只失败一次。詹金斯每天晚上都会进行这些测试,如果出现故障或错误,会报告结果问题是我甚至无法开始计数,因为它只有failureProperty和errorProperty,它们可以是true或false,但当它到达第一个失败或错误的测试时,它会停止并失败。我在谷歌上没有找到好的解决方案,他们向我推荐了这些属性,但他们没有满足我的需求。
这是代码:
<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"参数似乎不起作用。
如果你能帮我的话,提前谢谢!
您需要使用ant的junitreport
生成报告。这会输出一个xml文件,如果您感兴趣,jenkins会很好地为您计算和显示该文件,以及进化图等等。
将JUnit属性haltonerror
和haltonfailure
设置为false。然后使用各种报告工具来解析生成的报告。报告可以是XML格式,您可以使用JUnitreport来解析文件。我更喜欢Jenkins,它会向我展示每个构建,失败的JUnit测试的数量,以及各种不错的报告。其他人使用各种XSLT程序(JUnitreport就是这样)。
Word'o小心:如果使用JUnitReport,您可能需要在Ant的lib目录中多放几个jar。我已经有一段时间没有使用JUnitReport了,但我记得我需要Xalan,但这是Java现在附带的东西。
还可以从另一个类似问题中查看这个答案,该问题涉及如何为执行和报告生成配置junit目标。生成报告后,使用JUnit测试报告生成后构建操作进行配置。
您是否也尝试过使用printsummary="withOutAndErr"并检查过?这对我来说非常好。