2010-06-18 8 views
0

공용 클래스 NewTest를 작동하지 것은 SeleneseTestCase를 확장 {Junit와 동적으로 생성 된 테스트가

public static Test suite() throws Exception 
{ 
    TestSuite suite = new TestSuite(); 

    TestSuite s = new TestSuite("TestCase Name"); 
     GeneratedTest t = new GeneratedTest("testName"); 
     t.setFailure("TestCase Name: testName"); 
     s.addTest(t); 
     t = new GeneratedTest("testAge"); 
     s.addTest(t); 
     suite.addTest(s); 
    s = new TestSuite("TestCase Name2"); 
     t = new GeneratedTest("testOOGABOOGA"); 
     t.setFailure("TestCase Name2: testOOGABOOGA"); 
     s.addTest(t); 
     suite.addTest(s); 
    s = new TestSuite("TestCase Name4"); 
     t = new GeneratedTest("testName"); 
     t.setFailure("TestCase Name4: testName"); 
     s.addTest(t); 
     t = new GeneratedTest("testAge"); 
     s.addTest(t); 
     suite.addTest(s); 
    s = new TestSuite("TestCase Name3"); 
     t = new GeneratedTest("testName"); 
     t.setFailure("TestCase Name3: testName"); 
     s.addTest(t); 
     t = new GeneratedTest("testAge"); 
     s.addTest(t); 
     suite.addTest(s); 

    return suite; 
} 

} 


public class GeneratedTest extends TestCase 
{ 
    public String testFailMessage; 

    public GeneratedTest(String name) 
    { 
    ((TestCase)this).setName(name); 
    } 

    public void runTest() 
    { 
    if (testFailMessage != null) 
    { 
     fail(testFailMessage); 
    } 
    } 

    public void setFailure(String msg) 
    { 
    testFailMessage = msg; 
} 
} 

당신이 볼 수있는 (또는 어쩌면 당신은 할 수 없음) 내가 런타임에 JUnit을 위해 테스트를 추가 해요한다. 이것은 제대로 표시되지 않는다는 점을 제외하고는 모두 훌륭하고 멋쟁이입니다. 당신이 볼 수 있듯이

click here for image

이 같은 이름을 가진 테스트 심지어 그들이 중복 된 이름을 가진 마지막 시험을 제외하고, 실행 된 적이 있음을 표시하지 않습니다, 그리고 테스트 : 여기, 내가 무엇을 의미하는지에 관해 안다 같은 이름을 가진 다른 모든 테스트의 오류 메시지가 있습니다.

이 방법은 단지 junit3 스타일을 사용하는 방식의 결함일까요? Junit4 매개 변수화를 사용하여이를 수정해야합니까?

+0

junit4 (JDK5 이상 필요)로 전환하려면 꼭해야합니다. 매개 변수화 된 테스트가 확실히 귀하의 경우에 대한 해답입니다. – topchef

답변

0

Eclipse의 테스트 러너에서 비슷한 것으로 나타났습니다. JUnit 3.8 스타일 매개 변수 테스트의 경우 이름이 표시되지 않았습니다. JUnit 4 스타일로 전환하면 문제가 해결되었습니다.

이것은 정확히 사용자 시나리오는 아니지만 테스트를 JUnit 4로 업데이트 할 때까지 살아 있어야 할 것이라고 생각합니다. Eclipse는 여전히 중요한 테스트 인 테스트를 실행합니다.

관련 문제