我有几个动态加载的类(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()
感谢。
答案 0 :(得分:0)
所以我做了一些RTFM并提供了简单的解决方案。我创建了RunListener类,它具有RunNotifier字段,覆盖所有方法并委托给通知程序中的等效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 {
}