我通常使用ruby代码,并使用rspec进行单元测试。Junit。有没有办法让输出格式化为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">
使用格式化= “普通” 了太多的冗余信息填满屏幕。我不需要将每一个通行证列为一行文本 - 只需要一个点是理想的。
有谁知道如果自定义格式化程序已被写入,产生类似于我想要的格式?
无论我使用哪种工具都需要在命令行上工作,花哨的GUI工具不是一个选项。
感谢您的支持。我正在与格式化程序取得一些进展,但我遇到了一些障碍。我只能钩入单个测试套件的开始和结束(即包含一组测试的单个Java类)。所以,我正在吐出每套测试的一系列点。是否有任何方法可以在整个测试套件的开始和结束处获得,因此我可以在所有套件中为所有测试收集点并将它们输出为一个块? – digitalronin
是的,它看起来并不是一个简单的解决方案。看起来它可能基于你正在使用的跑步者。您可以尝试将测试分组到一个套件中,然后运行该套件(查看套件之后是否触发endTest())。您可能可以使用RunListener。它有一个函数testRunFinished(),看起来它可以做你想做的事情。 – Joe
谢谢,我会研究使用RunListener – digitalronin