繁体   English   中英

JUnit,动态加载的测试类

[英]JUnit, dynamically loaded test classes

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

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

这只是将结果打印到控制台。 我想要针对所有测试用例的单个测试的报告(例如,在詹金斯(Jenkins),例如,使用参数化运行器)。 您能指出我正确的方向吗? 我想我必须创建自定义跑步者。

测试类是从第三方库生成的。 不幸的是,以下代码不起作用(不执行任何操作):

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

谢谢。

所以我做了一些RTFM,并提供了简单的解决方案。 我创建了具有RunNotifier字段的RunListener类,重写了所有方法并委托了notifier中的等效fire *方法,并使用以下run方法创建了自定义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 {
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM