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();
}
}
}
私が直面している問題は、Threadpool が初期化時に 4 スレッドのサイズを維持しているにもかかわらず、すべてのスレッドを同時に実行し、ブラウザの起動時に同期の問題が発生していることです。私の考えは、スレッドの実行の間に遅延を追加することです。
スレッドプール内に新しい実行可能なスレッドを作成しているため、スレッド間に待機または遅延を追加する方法がわかりません。この問題を理解できませんでした。これについて親切に助けてください。あなたの助けに感謝します。