gpt4 book ai didi

java - 防止 junit 测试运行两次

转载 作者:太空宇宙 更新时间:2023-11-04 13:03:12 25 4
gpt4 key购买 nike

与我的问题类似的问题还有很多,但没有明确的答案!我的测试失败了,因为它们在套件内运行一次并且单独运行一次。我只需要它们在套件内运行一次。这是我的套房:

@RunWith(Suite.class)
@Suite.SuiteClasses({Test1.class, Test2.class})
{
.....
}

我正在使用命令 test 从命令行运行测试。

有没有人找到解决方案?

最佳答案

我使用以下设置来使用 JUnit 并行运行测试,并且它们仅运行一次:

@RunWith(ParallelSuite.class)
@SuiteClasses({ Test1.class, Test2.class })
public class AllTests {

}

我有一个 ParallelSuite.class:

package tests;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

import org.junit.internal.runners.*;
import org.junit.runners.Suite;
import org.junit.runners.model.InitializationError;
import org.junit.runners.model.RunnerBuilder;
import org.junit.runners.model.RunnerScheduler;

public class ParallelSuite extends Suite {
public ParallelSuite(Class<?> klass, RunnerBuilder builder) throws InitializationError {

super(klass, builder);

setScheduler(new RunnerScheduler() {

private final ExecutorService service = Executors.newFixedThreadPool(4);

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);
}
}
});
}
}

关于java - 防止 junit 测试运行两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34741217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com