如何将JUnit Ant任务配置为仅在失败时生成输出?
我在Ant中配置JUnit,以便在每个构建上运行unit testing。 我希望失败测试的输出在它们运行时打印在Ant控制台输出中。 我不需要看到后续测试的任何输出。
这是我的build.xml
文件的相关位:
这几乎产生了我想要的东西,Ant输出中详细说明了失败的测试,除了成功的测试还写了以下输出:
[junit] Testsuite:my.tree.junit.ExampleTest [junit]测试运行:7,失败:0,错误:0,经过的时间:0.002秒
我相信我已经尝试了JUnit任务文档中列出的所有组合,包括:
-
printsummary
属性 -
showoutput
属性 - 每种类型的
formatter
元素
我的用例是从命令行运行ant
。 当我编写更多测试时,我不希望后续测试的输出如此之大,以至于失败测试的输出会滚出屏幕。 我只想让ant
保持安静,除非有一个需要我注意的失败测试。 如何配置Ant / JUnit来执行此操作?
我正在使用Ant版本1.6.4和JUnit 4.6。
一种可能性是使用’ classname
‘属性定义自己的xml格式化程序(并扩展org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter
,可能在endTest()
或endTestsuite()
方法上endTest()
)。
该格式化程序将忽略信息消息并仅显示失败消息。
注意: 此设置提到仅显示失败测试的可能性:
你测试过了吗?
注意:“ showoutput="true"
和
”可能有点问题,如最近的(2012年2月)票证所示 )
另一个方法是定义你的ant Juint Test runner,支持ant JUnitResultFormatter
并只显示stderr消息。
来自eclipse的EclipseTestRunner
就是一个很好的例子。