有没有办法以编程方式将测试添加到 JUnit4 中的测试套件中?
在 Junit3 中你可以这样做
TestSuite ts = new TestSuite();
ts.addTestSuite(a.class);
ts.addTestSuite(b.class);
在 JUnit4 中怎么样?
最佳答案
一种方法是使用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 {
}
关于java - 在 JUnit4 中添加测试到 TestSuite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11662827/