Перейти к основному содержимому

Отказоустойчивый плагин Maven

· 2 мин. чтения

1. Обзор

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

Обзор других основных плагинов см. в этой статье .

2. Цели плагина

Плагин отказоустойчивости используется для интеграционных тестов проекта. У него две цели:

  • Integration-test — запустить интеграционные тесты; эта цель привязана к этапу интеграционного тестирования по умолчанию
  • верифицировать — убедиться, что интеграционные тесты пройдены; эта цель привязана к фазе проверки по умолчанию

3. Выполнение цели

Этот плагин запускает методы в тестовых классах так же, как и плагин surefire . Мы можем настроить оба плагина аналогичным образом. Тем не менее, есть некоторые принципиальные различия между ними.

Во- первых, в отличие от surefire (см. эту статью ), который включен в super pom.xml , отказоустойчивый плагин с его целями должен быть явно указан в pom.xml , чтобы быть частью жизненного цикла сборки:

<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.21.0</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
...
</configuration>
</execution>
</executions>
</plugin>

Самая новая версия этого плагина находится здесь .

Во-вторых, отказоустойчивый плагин запускает и проверяет тесты с разными целями. Сбой теста на этапе интеграционного тестирования не приводит к немедленному сбою сборки, что позволяет выполнить этап после интеграционного тестирования , на котором выполняются операции очистки.

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

4. Вывод

В этой статье мы представили подключаемый модуль отказоустойчивости , сравнив его с подключаемым модулем surefire , другим популярным подключаемым модулем, используемым для тестирования.

Полный исходный код этого руководства можно найти на GitHub .