如何使用JUnit4以编程方式执行测试套件?
我正在尝试使用API调用JUnit测试套件。我知道您可以使用以下工具来设置测试类:如何使用JUnit4以编程方式执行测试套件?,junit,automated-tests,junit4,test-suite,Junit,Automated Tests,Junit4,Test Suite,我正在尝试使用API调用JUnit测试套件。我知道您可以使用以下工具来设置测试类: @RunWith(Suite.class) @Suite.SuiteClasses({ Test1.class, Test2.class, ... }) 但是,有没有一种方法可以使用JavaAPI(例如使用JUnitCore)触发整个套件 例如,您可以使用以下代码触发测试: Runner r = try { r = new BlockJUnit4ClassRunner(Class.forName(
@RunWith(Suite.class)
@Suite.SuiteClasses({
Test1.class,
Test2.class, ...
})
但是,有没有一种方法可以使用JavaAPI(例如使用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 = new Suite(klass, new RunnerBuilder() {
... // Implement methods
});
JUnitCore c = new JUnitCore();
c.run(Request.runner(suite));
但是我不确定这是否是一种推荐的方法,或者编写上述代码是否有任何缺点。只需指定JUnitCore的套件类名称:
Computer computer = new Computer();
JUnitCore jUnitCore = new JUnitCore();
jUnitCore.run(computer, MySuite.class);
也可以使用命令提示符作为
java org.junit.runner.JUnitCore测试类名我认为这不符合“编程”的条件。如果您使用runtime.exece调用它,它会的!我一定会试试的。同时,您对我的更新中的代码片段有什么建议吗?