在JUnit4中向TestSuite添加测试

时间:2012-07-26 05:21:35

标签: java junit

有没有办法以编程方式将测试添加到JUnit4中的testsuite?

在Junit3中你可以这样做

TestSuite ts = new TestSuite();
ts.addTestSuite(a.class);
ts.addTestSuite(b.class);

JUnit4如何回合?

1 个答案:

答案 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 {
}