2017-11-28 10 views
0

私は少数のJunitテストクラスを持っています。私はそれらを2つのスレッドで実行したいので、maxParallelForks = 2が含まれています。同じクラスのテストが同じスレッドで順番に実行されていることを確認したい。これを達成する方法は? (私はSpringRunnerを使用しています。)同じスレッドで同じクラスのメソッドと並行してテストクラスを実行する

答えて

0

私の知る限りは、Gradleのソースで簡単に見から見ることができるように、これはまさに必要なオプションでなければなりません。 maxParallelForks make test クラスは、単一のテストメソッドではなく、並列で実行する必要があります。

0

私は@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); 
       } 
      } 
     }); 
    } 
} 
関連する問題