Java 如何格式化JUnit控制台输出?

Java 如何格式化JUnit控制台输出?,java,junit,Java,Junit,是否可以在控制台上格式化JUnit输出以获得自定义输出? 例如,我实际测试的标准JUnit输出是: junits: [junit] Running com.myapp.tests.dao.Test_1 [junit] Testsuite: com.myapp.tests.dao.Test_1 [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 10,016 sec [junit] Tests run: 1, Failures:

是否可以在控制台上格式化JUnit输出以获得自定义输出? 例如,我实际测试的标准JUnit输出是:

junits:
[junit] Running com.myapp.tests.dao.Test_1
[junit] Testsuite: com.myapp.tests.dao.Test_1
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 10,016 sec
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 10,016 sec
[junit]
[junit] Testcase: insert took 3,984 sec
[junit] Running com.myapp.tests.dao.Test_2
[junit] Testsuite: com.myapp.tests.dao.Test_2
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 13,35 sec
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 13,35 sec
[junit]
[junit] Testcase: load took 3,239 sec
[junit] Testcase: insert took 2,21 sec
[junit] Running com.myapp.tests.dao.Test_3
[junit] Testsuite: com.myapp.tests.dao.Test_3
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 12,786 sec
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 12,786 sec
[junit]
[junit] Testcase: insert took 2,607 sec
[junit] Testcase: update took 2,338 sec
[junit] Running com.myapp.tests.dao.Test_4
[junit] Testsuite: com.myapp.tests.dao.Test_4
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 14,803 sec
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 14,803 sec
[junit]
[junit] Testcase: getAll took 4,73 sec
[junit] Testcase: insert took 2,289 sec    
我想更好地强调每个JUnit类。至少通过添加一些新行来生成类似的输出:

junits:
[junit] Running com.myapp.tests.dao.Test_1
[junit] Testsuite: com.myapp.tests.dao.Test_1
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 10,016 sec
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 10,016 sec
[junit]
[junit] Testcase: insert took 3,984 sec
[junit]
[junit]
[junit]
[junit] Running com.myapp.tests.dao.Test_2
[junit] Testsuite: com.myapp.tests.dao.Test_2
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 13,35 sec
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 13,35 sec
[junit]
[junit] Testcase: load took 3,239 sec
[junit] Testcase: insert took 2,21 sec
[junit]
[junit]
[junit]
[junit] Running com.myapp.tests.dao.Test_3
[junit] Testsuite: com.myapp.tests.dao.Test_3
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 12,786 sec
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 12,786 sec
[junit]
[junit] Testcase: insert took 2,607 sec
[junit] Testcase: update took 2,338 sec
[junit]
[junit]
[junit]
[junit] Running com.myapp.tests.dao.Test_4
[junit] Testsuite: com.myapp.tests.dao.Test_4
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 14,803 sec
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 14,803 sec
[junit]
[junit] Testcase: getAll took 4,73 sec
[junit] Testcase: insert took 2,289 sec

我不知道如何格式化JUnit的控制台输出。但是,您可以让JUnit以各种格式生成报告,例如,或

此外,还有很多工具可以处理结果,并以有用的方式向您展示。例如,包含用于运行或调试单元测试以及在树状视图中查看结果的函数


您还可以使用连续集成系统(如Jenkins)来运行测试。如果您配置它,它将生成测试结果的交互式HTML报告。

如果您想要完全控制,您可以非常轻松地实现自己的测试运行程序

派生自–一个处理
testStarted
testFinished
testFailure
等的类,然后通过
addListener()
将其实例作为传递给


我曾经这样做是为了在几页代码中编写我当时认为是一个奇特的控制台日志。这并不难,但考虑到您主要希望插入一些额外的换行符,这可能有点过分。

您是对的,处理结果会更好。使用Jenkins服务器时,我将查找有关如何配置它的文档。