Maven surefire - создание зависимости между тестами

У меня есть тестовый класс с двумя методами. Они вызываются maven одновременно, поэтому:

  1. стартовый тестA
  2. стартовый тестB
  3. завершающий тестB
  4. конечный тестA

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

Я думаю о какой-то зависимости между этими методами тестирования. Это как-то возможно?


person peterh    schedule 08.05.2014    source источник
comment
Во-первых, эти тесты по определению больше не являются модульными тестами. Это интеграционные тесты, потому что они не являются независимыми. Кроме того, вы должны решить эту проблему с помощью тестовой среды, такой как TestNG, которая может определять зависимости между методами тестирования. Кроме того, они должны запускаться maven-failsafe-plugin, поскольку они являются интеграционными тестами. Как уже объяснялось, это звучит очень странно.   -  person khmarbaise    schedule 08.05.2014


Ответы (2)


JUnit имеет аннотацию @FixMethodOrder для выполнения тестовых методов в заданном классе в порядке объявления или в алфавитном порядке.

У Surefire есть свойство runOrder для запуска тестовых классов. в заданном порядке, т.е. по алфавиту.

person Harald Wellmann    schedule 08.05.2014

Я не думаю, что есть простой способ сделать это с помощью одного плагина surefire. Как показывает другой ответ, вы можете сделать это с помощью комбинации методов.

Тем не менее, это плохая практика. Модульные тесты должны быть независимыми. Если у вас есть реальная зависимость от них, вы должны объединить их в один тест. Даже если вы можете заставить это работать так, как вы хотите, вы будете работать против стандартной практики, которая запутает других и затруднит понимание и поддержку вашей установки.

person Martin Serrano    schedule 08.05.2014