2012-03-29 3 views
2

Java 주 메소드 내에서 Junit Test Runner를 TestRunner.run (suite)으로 실행하고 성공적으로 실행되는 로컬에서 실행 중입니다. 내가 끼 었어 것은 내가 comamnd 줄에서 실행할 때마다 테스트 스위트가JUnit Test Suite 기본 출력을 재정의하는 방법

OK (1 개 시험) ... OK (2 테스트) ...

내가이 동작을 원하는 해달라고을 생산한다는 것입니다. 이걸 없앨 수있는 방법이 있니? 나는 많은 것을 수색했고 아무도 이것을 다루지 않는 것 같다.

[방법] 규칙 및 클래스 규칙 주석 스위트 레벨 (인터셉터)에서 일을 처리하는 것 같다하지만 난 많이 감사의 JUnit이에

모든 포인터를 제공하는 스위트 출력을 무시할 수 없습니다입니다

답변

1

TestRunner 클래스에는 setPrinter(ResultPrinter) 메서드가있어 출력물에 어떤 일이 발생할지 재정의 할 수 있습니다. 하나를 생성자에 전달할 수도 있습니다. 기본적으로 프린터는 다음과 같습니다

new ResultPrinter(System.out); 

당신은, 예를 들어, 서브 클래스의 ResultPrinter 당신이 성공적으로 출력을 해제 할 수 있다면. 이런 식으로 뭔가 작업을해야합니다 :

new TestRunner(new MyResultPrinter(System.out)).run(suite); 
+0

감사 톤 :

public class MyResultPrinter extends ResultPrinter { public MyResultPrinter(PrintStream writer) { super(writer); } @Override protected void printFooter(TestResult result) { if (result.wasSuccessful()) { // just drop the OK messages } else { // but print the failures super.printFooter(result); } } } 

그런 다음 당신이 좋아 사용하십시오. 훌륭하게 작동합니다. – Nitin