Как запустить классы JUnit или методы тестирования с нуля - PullRequest
0 голосов
/ 20 октября 2018

У меня есть тесты JUnit, расположенные в разных папках тестов, когда я запускаю их один за другим, все становится зеленым, все тесты проходят в определенной папке, но когда это делается в области действия (все сразу), некоторые тесты не выполняются из-занекоторые данные изменяются при выполнении предыдущих тестов.Так что это способ запуска тестов JUnit с нуля, я пробовал

mvn "-Dtest=TestClass1,TestClass2" test

, но некоторые тесты провалились.Когда это сделано, как:

mvn "-Dtest=TestClass1" test

все прошло.Или когда:

`mvn "-Dtest=TestClass2" test

все пройдено.

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

Для этой конкретной проблемы вы можете создать TestSuite.

Создать два класса Test Suite Присоедините аннотацию @RunWith (Suite.class) к классу.

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

@RunWith(Suite.class)

@Suite.SuiteClasses({
   TestJunit1.class
})

public class JunitTestSuite1 {   
}  


@RunWith(Suite.class)

    @Suite.SuiteClasses({
       TestJunit2.class
    })

    public class JunitTestSuite2 {   
    }  


public class TestRunner {
   public static void main(String[] args) {
      Result result1 = JUnitCore.runClasses(JunitTestSuite1.class);
      Result result2 = JUnitCore.runClasses(JunitTestSuite2.class);

      for (Failure failure : result1.getFailures()) {
         System.out.println(failure.toString());
      }
      for (Failure failure : result2.getFailures()) {
         System.out.println(failure.toString());
      }


      System.out.println(result1.wasSuccessful());
      System.out.println(result2.wasSuccessful());
   }
} 
0 голосов
/ 20 октября 2018

До тех пор, пока TestClass1 и TestClass2 имеют общее состояние, их нельзя будет запустить вместе, например, это может быть поле static где-нибудь в JVM.Вы должны провести рефакторинг тестов, чтобы они были изолированными и не имели побочных эффектов, например, используйте @Before и @After для очистки ресурсов после теста.

Вы можете поиграть с опциями плагина Maven Surefire, чтобы создать новую JVMдля каждого теста, но это было бы очень неэффективно.

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