有没有办法以编程方式将测试添加到JUnit4中的testsuite?
在Junit3中你可以这样做
TestSuite ts = new TestSuite();
ts.addTestSuite(a.class);
ts.addTestSuite(b.class);
JUnit4如何回合?
答案 0 :(得分:1)
一种方法是使用Request#classes():
public static void main(String[] args) throws Exception {
Request request = Request.classes(new Class<?>[] {Test1.class, Test2.class});
JUnitCore jUnitCore = new JUnitCore();
RunListener listener = new RunListener() {
@Override
public void testFailure(Failure failure) throws Exception {
System.out.println("failure=" + failure);
}
};
jUnitCore.addListener(listener);
jUnitCore.run(request);
}
在RunListener中,您可以覆盖的不仅仅是testFailure。
如果您希望将测试更多地集成到您的构建中,请扩展Suite
public static class DynamicSuite extends Suite {
public DynamicSuite(Class<?> klass, RunnerBuilder builder) throws InitializationError {
super(builder, klass, new Class<?>[] {Test1.class, Test2.class});
}
}
您使用的构造函数取决于如何调用Suite。以上内容适用于Eclipse。
然后使用@RunWith(DynamicSuite.class)
注释一个空类:
@RunWith(DynamicSuite.class)
public class DynamicTestSuite {
}