2013-03-28 6 views
2

많은 모델이있는 XML 파일이 있습니다. Test Suite에서이 XML 파일을 구문 분석하고 각 모델을 읽습니다. 각 모델별로 특정 테스트 케이스 목록을 실행하고 싶습니다.Junit4 테스트 슈트 - 테스트 스위트를 반복적으로 반복하고 테스트 케이스를 추가합니다.

즉, 테스트 스위트의 FOR 루프 안에서 테스트 케이스를 동적으로 추가해야합니다.

public static TestSuite suite() { 
TestSuite suite = new TestSuite(); 
for(condtion){ 
    if(model1){ 
     suite.addTest(new JUnit4TestAdapter(TestCase1.class)); 
     suite.addTest(new JUnit4TestAdapter(TestCase2.class)); 
    } 
    elseif(model2){ 
     suite.addTest(new JUnit4TestAdapter(TestCase3.class)); 
     suite.addTest(new JUnit4TestAdapter(TestCase4.class)); 
    } 
    } 
return suite; 
} 

그러나이 시나리오에서


는 XML의 마지막 모델 만 테스트 케이스가 실행됩니다. 테스트 케이스를 동적으로 추가하지 않고 모든 모델에 대해 실행합니다.

는 그럼

JUnitCore.runClasses (TestScoopixModelLoader.class)로 시도;

for 루프 안에 있습니다. 이 시나리오에서는 테스트 케이스가 동적으로 실행됩니다. 하지만 시각적 효과가 눈에 띄지 않습니다 (예 : 성공하면 녹색, 실패하면 빨간색). 이 시각적 효과가 Junit 테스트 러너 클래스에서 작동하지 않습니다.

이러한 문제가 발생한 경우 해결책을 제안하십시오.

답변

0

자신의 리스너를 추가하고

JUnitCore jCore = new JUnitCore(); 
jCore.addListener(new CustomListener()) 
JUnitCore.runClasses(TestScoopixModelLoader.class); 


public class CustomListener extends RunListener { 
    public void testFailure(Failure failure) { 
     System.out.println(failure); 
    } 

// Rest of the listener methods 

} 

리스너 API (A TEXTFILE, SYSOUT 등의) 결과를 인쇄 할 수 있습니다 : http://junit.sourceforge.net/javadoc/org/junit/runner/notification/RunListener.html