我正在尝试使用API调用JUnit测试套件。我知道您可以使用以下方法来配置测试类:
@RunWith(Suite.class)
@Suite.SuiteClasses({
Test1.class,
Test2.class, ...
})
但是,有没有办法使用Java API触发整个套件,例如使用JUnitCore?
例如,您可以使用以下代码触发测试:
Runner r =
try {
r = new BlockJUnit4ClassRunner(Class.forName(testClass));
} catch (ClassNotFoundException | InitializationError e) {
// handle
}
JUnitCore c = new JUnitCore();
c.run(Request.runner(r));
更新
从API看来,Suite类本身似乎是一个跑步者,因此以下代码似乎有用:
Suite suite = new Suite(klass, new RunnerBuilder() {
... // Implement methods
});
JUnitCore c = new JUnitCore();
c.run(Request.runner(suite));
但我不确定这是否是推荐的方法,或者如果编写上述代码有任何不足之处。
答案 0 :(得分:14)
只需为JUnitCore指定套件类的名称:
Computer computer = new Computer();
JUnitCore jUnitCore = new JUnitCore();
jUnitCore.run(computer, MySuite.class);
答案 1 :(得分:4)
您也可以使用命令提示符
java org.junit.runner.JUnitCore测试类名称