【问题标题】:Junit4 Test Suite - Looping and adding test cases dynamically from test suiteJunit4 测试套件 - 从测试套件动态循环和添加测试用例
【发布时间】:2013-03-28 09:28:31
【问题描述】:

我有一个包含许多模型的 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

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

【问题讨论】:

    标签: java junit junit4 testcase


    【解决方案1】:

    添加您自己的侦听器并让它打印结果(在文本文件、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
    
     }
    

    监听器接口: http://junit.sourceforge.net/javadoc/org/junit/runner/notification/RunListener.html

    【讨论】:

      猜你喜欢
      • 2019-01-28
      • 2018-04-07
      • 2016-10-09
      • 2013-04-09
      • 2013-06-30
      • 1970-01-01
      • 2011-10-23
      • 1970-01-01
      • 2012-09-03
      相关资源
      最近更新 更多