我正在尝试使用线程并行运行 JUnit 测试脚本(基本上所有测试脚本都与 Selenium WebDriver 相关),为此我使用ExecutorService创建了一个大小的线程池,下面是我创建线程池的代码
ExecutorService executor = Executors.newFixedThreadPool(4);
for (int threadpoolCount = 0; threadpoolCount < classNames.size(); threadpoolCount++) {
Runnable worker = new ProcessRunnable(classNames.get(threadpoolCount));
executor.execute(worker);
}
executor.shutdown();
while (!executor.isTerminated()) {
}
这是我的触发Junit类的线程实现
public class ProcessRunnable implements Runnable{
private String classNames;
public ProcessRunnable(String className) {
this.classNames = className;
}
public void run() {
try {
Class testcase = Class.forName(classNames);
JUnitCore.runClasses(testcase);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我面临的问题是,虽然线程池在初始化时保持 4 个线程的大小,但它同时执行所有线程,这在浏览器启动时会产生一些同步问题。所以我的想法是在线程执行之间添加一些延迟。
由于我在线程池中创建了一个新的可运行线程,我不确定如何在线程之间添加等待或延迟,我无法解决这个问题。请帮助我,感谢您的帮助。