目前我们使用 Spring+Junit 和一个数据库运行集成/e2e 测试。我们希望更快地运行测试,因此我们希望并行运行测试。
如何配置 Spring+Junit 以并行运行测试,例如使用 2 个数据库?
我们正在使用 Maven。
目前我们使用 Spring+Junit 和一个数据库运行集成/e2e 测试。我们希望更快地运行测试,因此我们希望并行运行测试。
如何配置 Spring+Junit 以并行运行测试,例如使用 2 个数据库?
我们正在使用 Maven。
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