2013-07-10 3 views
1

다양한 환경에서 다양한 HTTP 메소드를 테스트하기 위해 테스트 장치 및 일련의 junit 테스트를 작성하고 있습니다. 현재 나는 많은 테스트를 작성했으며, 궁극적으로는 Junit 테스트의 모든 오류/실패를 텍스트 파일로 출력 할 수있게하고 싶습니다. 가장 좋은 방법은 무엇입니까?JUnit 테스트 목록의 모든 오류/실패를 텍스트 파일에 기록하십시오.

예를 들어 테스트에 실패하면 junit 테스트의 이름과 응답 상태 코드 및 상태 코드 설명과 같은 테스트 하네스 클래스에서 가져온 일부 정보를 말하고 싶습니다. .

답변

1

Apache Log4J을 사용해보세요.

또 다른 방법은 정보를 파일로 전송하는 것입니다. this tutorial을 확인하십시오. 테스트가 실패하면 파일에 append() 정보를 입력하면됩니다.

.append(this.class() + respone.getStatus() + response.getCode()); 
+0

"내 테스트가 실패하면"Log4J를 사용해야 정확한지 알 수 있습니까? 파일에 추가 작업을하고 싶지만 테스트가 실패 할 때만 ... – user2529603

+0

아니요, Log4J는 테스트가 실패했는지 여부를 감지하는 것을 도와주지 않습니다. 그냥 로깅 도구 일뿐입니다. 테스트가 실패 할 시점을 정의한 다음 중요하다고 생각하는 정보를 기록해야합니다. 너는 무엇을 테스트하고 있는가? 테스트에서 어떻게 피드백을 얻습니까? 예를 들어'if (result! = expected) {LOGGER.error ("예기치 않은 클래스 결과"+ this.class();}' –

0

당신은 TestWatcher를 사용해야합니다 당신은 방법을 구현하는거야, 그리고 JUnit을가 실패하고 원인을 제외하고 당신의 실패() 메소드에 당신에게 콜백을 제공했다 https://github.com/junit-team/junit/wiki/Rules#testwatchmantestwatcher-rules

public class WatchmanTest { 
    private static String watchedLog; 

    @Rule 
    public TestRule watchman = new TestWatcher() { 
    @Override 
    public Statement apply(Statement base, Description description) { 
     return super.apply(base, description); 
    } 

    @Override 
    protected void succeeded(Description description) { 
     watchedLog += description.getDisplayName() + " " + "success!\n"; 
    } 

    @Override 
    protected void failed(Throwable e, Description description) { 
     watchedLog += description.getDisplayName() + " " + e.getClass().getSimpleName() + "\n"; 
    } 

    @Override 
    protected void skipped(AssumptionViolatedException e, Description description) { 
     watchedLog += description.getDisplayName() + " " + e.getClass().getSimpleName() + "\n"; 
    } 

    @Override 
    protected void starting(Description description) { 
     super.starting(description); 
    } 

    @Override 
    protected void finished(Description description) { 
     super.finished(description); 
    } 
    }; 

    @Test 
    public void fails() { 
    fail(); 
    } 

    @Test 
    public void succeeds() { 
    } 
} 

에 설명 테스트에 대한 더 많은 정보를 담고있는 설명 객체. 당신은 쓰기를 원하는 파일과 같이 TestWatcher에서 사용할 리소스를 안정적으로 설정하고 제거 할 수있는 방법을 설명하기 때문에 해당 페이지의 ExternalResource 클래스를 살펴볼 필요가있다.

관련 문제