0

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

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

我们正在使用 Maven。

4

1 回答 1

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

于 2018-01-30T20:45:43.440 回答