Gradle运行测试类与同一线程中运行的同一类的方法并行



我有几个Junit测试课程。我想在两个线程中运行它们,因此包括maxParallelForks = 2。我想确保同一类的测试顺序在同一线程中进行。如何实现这一目标?(我使用SpringRunner。)

我正在使用@RunWith(Suite.class)运行多个测试类。所以我创建了一个新的跑步班,这解决了我的问题。

public class ParallelExecutor extends Suite {
    public ParallelExecutor(Class<?> klass, RunnerBuilder builder) throws InitializationError, IOException, InterruptedException {
        super(klass, builder);
        setScheduler(new RunnerScheduler() {
            private final ExecutorService service = Executors.newFixedThreadPool(10);
            public void schedule(Runnable childStatement) {
                service.submit(childStatement);
            }
            public void finished() {
                try {
                    service.shutdown();
                    service.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
                } catch (InterruptedException e) {
                    e.printStackTrace(System.err);
                }
            }
        });
    }
}

据我从快速查看gradle来源而言,这应该是您想要的选项。maxParallelForks进行测试并行执行,而不是单个测试方法。

相关内容

  • 没有找到相关文章

最新更新