2015-02-04 3 views
-2

맞춤 출력을 얻으려면 콘솔에서 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: 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 

답변

2

JUnit의 콘솔 출력을 포맷하는 방법을 모르겠습니다. 그러나 JUnit은 다양한 형식의 보고서를 생성 할 수 있습니다 (예 : HTML 또는 XML).

또한 결과를 처리하고 유용한 방식으로 제시 할 수있는 많은 도구가 있습니다. 예를 들어 Eclipse IDE for Java Developers에는 단위 테스트를 실행하거나 디버그하고 결과를 트리보기로 보는 기능이 있습니다.

Jenkins와 같은 지속적인 통합 시스템을 사용하여 테스트를 실행할 수도 있습니다. 테스트 결과를 구성하면 대화 형 HTML 보고서를 생성합니다.

+0

맞습니다. 결과를 처리하는 것이 좋습니다. Jenkins 서버가 사용됨에 따라 Jenkins 서버를 구성하는 방법에 대한 설명서가 제공됩니다. – Sakr

0

완벽하게 제어하려는 경우 자신 만의 테스트 러너를 아주 쉽게 구현할 수 있습니다. RunListener에서

파생 - 클래스 testStarted, testFinished, testFailure 등을 처리 - 다음으로 JUnitCoreaddListener() 비아로의 인스턴스를 전달한다.

나는이 코드를 한 번 작성하여 멋진 콘솔 로그를 몇 페이지의 코드로 작성했습니다. 어렵지는 않지만 대부분 줄 바꿈을 몇 번 추가하려고 할 때 약간 과장 될 수 있습니다.

관련 문제