Junit的。有没有办法让输出格式像rspec输出?

时间:2013-01-04 18:14:50

标签: java junit tdd

我通常在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工具。

1 个答案:

答案 0 :(得分:1)

您可以编写自己的格式化程序来解决问题。

以下是一些很好的说明,可帮助您入门: http://shaman-sir.wikidot.com/one-liner-output-formatter

基本上,您希望更改addError以保留有错误的测试记录。然后更改endTest()以输出a。除非测试处于失败或错误集中,否则不是所有信息。

ANT的API包含在它的二进制分发中。请记住使用新创建的格式化程序更新junit格式化程序类名。