2010-06-09 3 views
1

현재 JUnite Suite에서 실패한 총 테스트 수를 로그 파일에 기록하려고합니다.JUnit Suite의 로그 정보

@RunWith(Suite.class) 
@SuiteClasses({Class1.class, Class2.class etc.}) 
public class SimpleTestSuite {} 

내가 테스트가 실패하면 오류의 총 수를 증가 할 규칙을 정의하려고하지만 분명히 내 규칙이 호출되지 않습니다 :

내있는 TestSuite는 다음과 같이 정의된다.

@Rule 
public MethodRule logWatchRule = new TestWatchman() { 
    public void failed(Throwable e, FrameworkMethod method) { 
     errors += 1; 
    } 

    public void succeeded(FrameworkMethod method) { 
    } 
}; 

이 동작을 수행하려면 어떻게해야합니까?

답변

1

다음 코드는 저에게 적합합니다. errors을 정적으로 선언하지 않은 것 같습니다.

JUnit은 각 테스트 메소드를 실행하기 전에 조명기의 new instance을 생성한다고 생각하십시오.

public class WatchmanExample { 

private static int failedCount = 0; 

@Rule 
public MethodRule watchman = new TestWatchman() { 
    @Override 
    public void failed(Throwable e, FrameworkMethod method) { 
    failedCount++; 
    } 
}; 

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

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

} 
관련 문제