【问题标题】:JUnit, dynamically loaded test classesJUnit,动态加载的测试类
【发布时间】:2012-06-11 15:40:17
【问题描述】:

我有几个动态加载的类(Class<TestCase> 的实例)。我需要通过 Maven (mvn verify) 运行这些测试。现在我想知道该怎么做。我只知道我能做到:

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

这只是将结果打印到控制台。我想要所有测试用例的单个测试报告(例如在 Jenkins 中,例如使用 Parameterized runner)。你能指出我正确的方向吗?我想我必须创建自定义跑步者。

测试类是从 3rd 方库生成的。不幸的是,以下内容不起作用(它什么都不做):

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

谢谢。

【问题讨论】:

    标签: java unit-testing testing dynamic junit


    【解决方案1】:

    所以我做了一些 RTFM 并提供了简单的解决方案。我创建了具有 RunNotifier 字段的 RunListener 类,覆盖了所有方法并委托给通知程序中的等效 fire* 方法,使用以下运行方法创建了自定义 Runner:

    @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 {
    }
    

    【讨论】:

      猜你喜欢
      • 2016-07-29
      • 2015-11-11
      • 2011-03-22
      • 1970-01-01
      • 2020-06-15
      • 2010-09-26
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      相关资源
      最近更新 更多