2012-06-11 4 views
0

여러 동적로드 클래스 (인스턴스 Class<TestCase>)가 있습니다. Maven (mvn verify)을 통해이 테스트를 실행해야합니다. 이제 어떻게해야하는지 궁금합니다. 내가 아는 전부는 내가 할 수있는 것이다 :JUnit, 동적으로로드 된 테스트 클래스

Class<TestCase>[] classes = createTests(); 
JUnitCore junit = new JUnitCore(); 
junit.addListener(new TextListener(System.out)); 
junit.run(classes); 

이것은 단지 결과를 콘솔에 출력한다. 모든 테스트 케이스에 대한 개별 테스트에 대한 보고서를 원합니다 (예 : Jenkins에서 매개 변수화 된 러너와 같이). 올바른 방향으로 나를 가리켜 주시겠습니까? 나는 커스텀 러너를 만들어야 할 것 같아.

테스트 클래스는 타사 라이브러리에서 생성됩니다. 다음은 유감스럽게도 작동하지 않습니다 (아무 것도하지 않습니다) :

((TestCase) classes[0].newInstance()).run() 

감사합니다.

답변

0

그래서 일부 RTFM을 수행했고 쉬운 해결책이 있습니다. 나는 RunNotifier 필드가 RunListener 클래스를 생성 한 모든 방법을 오버라이드하고 다음 실행 방법으로 사용자 정의 러너 생성 통지에 해당하는 화재 * 방법에 위임 한 :이 클래스로 시작

@Override 
public void run(RunNotifier runNotifier) { 
    try { 
     Class<?>[] classes = createTests(); 
     JUnitCore junit = new JUnitCore(); 
     junit.addListener(new MyListener(runNotifier)); 
     junit.run(classes); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

시험 :

@RunWith(MyRunner.class) 
public class SomeTest { 
}