Преимущества плагина Maven FailSafe

Я читал, что Maven Failsafe plugin разработан специально для выполнения интеграционных тестов. В настоящее время я работаю над многомодульным проектом, и интеграционные тесты находятся в отдельном модуле, написанном на TestNg и выполняемом с использованием плагин Surefire. У нас нет конфликтов с модульными тестами, поскольку в этом модуле на этапе тестирования выполняются только интеграционные тесты. А чтобы настроить среду перед тестами и очистить ее после запуска тестов, используются аннотации @BeforeSuite @AfterSuite TestNg. Таким образом, нет необходимости использовать pre-integration-test фазу, integration-test фазу, post-integration-test фазу, используемую плагином Failsafe.

  • Есть ли еще какие-то преимущества, которые я упускаю из-за того, что не использую плагин Failsafe?
  • Есть ли лучшие способы выполнить мои текущие требования с помощью плагина Failsafe?
  • Могу ли я выполнить запуск сервера, выключение, разархивирование файлов и т. Д. На этапах pre-integration-test, post-integration-test без написания подключаемого модуля maven?

person keheliya    schedule 18.02.2012    source источник


Ответы (3)


Если у вас уже есть собственная тестовая установка / разборка в ваших наборах, что, судя по всему, вы делаете, вы мало что можете получить от плагина FailSafe.

Плагин FailSafe полезен в ситуациях, когда настройка тестируемой системы является дорогостоящей или занимает много времени, например, при запуске сервлета или распределенной системы. Подключаемый модуль FailSafe пригодится в таких ситуациях тем, что вы можете настроить эту среду на этапе pre-integration-test. Этот плагин также не останавливает выполнение сборки Maven в случае сбоя теста, что позволяет вам очистить все ваши артефакты на этапе post-integration-test, после чего он проверяет состояние ваших тестов и соответственно проходит или не выполняет сборку во время фаза verify.

person Cem Catikkas    schedule 19.02.2012
comment
Что ты имеешь в виду? Если вы не используете skipAfterFailureCount = 1, который не является параметром по умолчанию, imvn test не прерывается, если он не прошел тест - person Whimusical; 24.11.2018

У Failsafe есть одна большая особенность по сравнению с Surefire: когда тест не проходит, он не прерывается немедленно. Вместо этого он позволяет запускать код очистки (который обычно останавливает сервер Jetty).

person Aleksandr Dubinsky    schedule 19.02.2012
comment
Что ты имеешь в виду? Если вы не используете skipAfterFailureCount = 1, который не является параметром по умолчанию, imvn test не прерывается до конца - person Whimusical; 24.11.2018
comment
@Whimusical, если хотя бы один тест завершился неудачно, Maven по умолчанию остановит сборку после фазы test. С отказоустойчивым плагином фаза integration-test всегда будет успешной, затем будет запущено post-Integration-test, а затем сборка завершится неудачно на этапе verify. - person Cephalopod; 21.01.2019

Обращаясь к вашему третьему вопросу, поскольку на него нет ответа, imho.

Могу ли я выполнить запуск, выключение, разархивирование файлов и т. Д. На этапах предварительного и постинтеграционного тестирования без написания плагина maven?

Взято из этого ответа на "Maven Failsafe Plugin: как использовать фазы до и после интеграции-тестирования"

Это сводится к следующему: pre-integration-test и post-integration-test по умолчанию ничего не делают. Вы можете привязать к этим этапам плагин, специфичный для вашей задачи. Поиск конкретного плагина зависит от того, что вы пытаетесь сделать.

Еще одна важная вещь, на которую следует обратить внимание, - это соглашения об именах по умолчанию, используемые maven-failsafe-plugin: он запускает тестовые классы с именами, начинающимися или заканчивающимися на IT (как интеграционный тестовый класс)

person huch    schedule 17.12.2018