2

我有一个包含许多模型的 XML 文件。我在 Test Suite 中解析这个 XML 文件并读取每个模型。对于每个模型,我想执行特定的测试用例列表。

这意味着,在测试套件的 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 循环内。在这种情况下,测试用例是动态运行的。但是我在eclipse中没有得到那种视觉效果。(即成功的绿色条,失败的红色条)。此视觉效果不适用于 Junit TEST RUNNER CLASS

如果有人遇到过此类问题,请建议我一个解决方案。

4

1 回答 1

0

添加您自己的侦听器并让它打印结果(在文本文件、sysout 等中)

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:http: //junit.sourceforge.net/javadoc/org/junit/runner/notification/RunListener.html

于 2013-03-29T09:59:57.573 回答