Spring + Junit并行运行集成测试

时间:2018-01-26 08:56:04

标签: spring junit integration-testing e2e-testing parallel-testing

目前,我们使用Spring + Junit和一个数据库运行集成/ e2e测试。我们希望更快地运行测试,因此我们希望并行运行测试。

如何配置Spring + Junit以并行运行测试,例如使用2个数据库?

我们正在使用Maven。

1 个答案:

答案 0 :(得分:0)

<强> Junit4

ParallelComputer

@Test
public void test() {
    JUnitCore.runClasses(new ParallelComputer(true, true), new Class<?>[]{Test1.class, Test2.class});
}

延长Suite.class

public class ParallelSuite extends Suite {

    public ParallelSuite(Class<?> klass, RunnerBuilder builder) throws InitializationError {
        super(klass, builder);
        super.setScheduler(new RunnerScheduler() {

            private final ExecutorService service = Executors.newFixedThreadPool(klass.getAnnotation(SuiteClasses.class).value().length);

            @Override
            public void schedule(Runnable runnable) {
                service.submit(runnable);
            }

            @Override
            public void finished() {
                service.shutdown();
                try {
                    service.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }

        });
    }

}

<强> JUnit5

高度实验性的API,对我不起作用。但是可能对你没问题: https://jitpack.io/#junit-team/junit5/experiments%7Eparallel-execution-SNAPSHOT https://github.com/junit-team/junit5/issues/60