我通常在ruby中编码,并使用rspec进行单元测试。
现在我必须在java中做一些工作,所以我正在使用JUnit。多个测试套件的输出如下所示;
test:
[junit] Running com.whatever.MapperTest
[junit] Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 0.542 sec
[junit] Running com.whatever.ReducerTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.391 sec
[junit] Running com.whatever.DenormalizerTest
[junit] Tests run: 8, Failures: 0, Errors: 0, Time elapsed: 0.046 sec
[junit] Running com.whatever.EventTest
[junit] Tests run: 31, Failures: 0, Errors: 0, Time elapsed: 0.081 sec
BUILD SUCCESSFUL
Total time: 5 seconds
这是非常密集的文本,并且使得查看失败和错误有点困难。
使用RSpec,我得到这样的输出;
............F........F........E.......
哪里'。'表示通过测试,'F'表示失败,'E'表示错误。在此输出下方是所有故障/错误的详细信息。
我发现这种格式更易于查看 - 在查看JUnit的正常摘要输出中的运行/失败/错误计数时,失败和错误会以一种方式跳出来。
我在build.xml文件的junit任务中经历了几个选项,包括;
<formatter type="plain" usefile="false" />
和
<junit printsummary="true">
使用formatter =“plain”会在屏幕上填充过多的冗余信息。我不需要将每一个传递列为一行文本 - 只需一个点就可以了。
有没有人知道是否编写了一个自定义格式化程序,它会产生类似于我想要的格式?
我使用的任何工具都需要在命令行上工作,因此不能选择花哨的GUI工具。
答案 0 :(得分:1)
您可以编写自己的格式化程序来解决问题。
以下是一些很好的说明,可帮助您入门: http://shaman-sir.wikidot.com/one-liner-output-formatter
基本上,您希望更改addError以保留有错误的测试记录。然后更改endTest()以输出a。除非测试处于失败或错误集中,否则不是所有信息。
ANT的API包含在它的二进制分发中。请记住使用新创建的格式化程序更新junit格式化程序类名。