JUnit: запускать одновременные тесты - PullRequest
5 голосов
/ 18 февраля 2011

Я все еще довольно новичок в программировании на Java и в тестировании JUnit. Я использую NetBeans 6.9.1, который поставляется с junit-4.5 (но я добавил junit-4.8.2 в свою библиотеку).

У меня есть несколько тестовых классов, и в каждом классе есть несколько методов @Test.

Когда я запускаю определенный класс Test, он запускает каждый метод @Test по одному. Я также создал Test Suite с

@RunWith(Suite.class)
@Suite.SuiteClasses(value = {
    TestClassA.class,
    TestClassB.class,
    TestClassC.class})
public class NewTestSuite {
}

, который будет проходить через каждый из моих тестовых классов и в каждом прогоне каждый метод @Test.

У меня вопрос: возможно ли мне одновременно запускать тестовые классы? Или в каждом тестовом классе можно одновременно запускать методы @Test?

Это позволило бы мне выполнить все тесты гораздо быстрее, чем одновременное выполнение классов и методов.

Спасибо!

Ответы [ 2 ]

8 голосов
/ 18 февраля 2011

Использование org.junit.experimental.ParallelComputer : Образец:

    public class NewTestSuite {

       public static void main(String[] s){

         Class[] cls={TestClassA.class,TestClassB.class,TestClassB.class };  

         //simultaneously all methods in all classes  
         Result result = JUnitCore.runClasses(new ParallelComputer(true, true), cls);
         System.out.print(result.wasSuccessful());

         //simultaneously among classes  
         //Result result = JUnitCore.runClasses(ParallelComputer.classes(), cls);  

         //simultaneously among methods in a class  
         //Result result = JUnitCore.runClasses(ParallelComputer.methods(), cls);  
      }
   } 
1 голос
/ 07 марта 2016

Вы можете попробовать этот простой пример: я добавляю утверждение, потому что в JUnitCore у нас нет встроенной сборки.

...