당신은 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 클래스를 살펴볼 필요가있다.
"내 테스트가 실패하면"Log4J를 사용해야 정확한지 알 수 있습니까? 파일에 추가 작업을하고 싶지만 테스트가 실패 할 때만 ... – user2529603
아니요, Log4J는 테스트가 실패했는지 여부를 감지하는 것을 도와주지 않습니다. 그냥 로깅 도구 일뿐입니다. 테스트가 실패 할 시점을 정의한 다음 중요하다고 생각하는 정보를 기록해야합니다. 너는 무엇을 테스트하고 있는가? 테스트에서 어떻게 피드백을 얻습니까? 예를 들어'if (result! = expected) {LOGGER.error ("예기치 않은 클래스 결과"+ this.class();}' –