Яка різниця між плагінами Maven Surefire та Maven Failsafe?


Відповіді:


141

Простими словами, плагін Failsafe призначений для запуску інтеграційних тестів, а Surefire - для запуску одиничних тестів .

Це далі пояснюється в Maven FAQ :

  • maven-surefire-pluginпризначений для запуску тестових одиниць, і якщо будь-який з тестів не вдасться, він може негайно збігти збірку.

  • maven-failsafe-pluginпризначений для запуску тестів інтеграції , і розв'язує помилку збірки, якщо є тестові збої від фактично запущених тестів.

    Назву " failsafe " було обрано і тому, що це синонім надійного вогню і тому, що це означає, що коли він не вдається, це робить це безпечним чином.

    Відмовостійкими Плагін має дві мети:

    • failsafe:integration-test запускає інтеграційні тести програми,
    • failsafe:verify перевіряє, чи пройшли інтеграційні тести програми.

Дивитися також:


4
Цікаве питання - чому . Багато інструментів побудови працюють ідеально, не роблячи це, мабуть, досить штучним та обмеженим розмежуванням. Налаштування обох плагінів разом та поглинання їхніх звітів послідовно - це цілком ПДФА.
Рафаель

І ні, відмінності, зазначені в інших відповідях, не дають достатніх причин для наявності декількох інструментів для того, що має бути фільтрами та прапорами.
Рафаель

27

З https://maven.apache.org/surefire/maven-failsafe-plugin/ , я б сказав, що різниця між Surefire та Failsafe полягає в тому, як вони провалюються:

Якщо ви використовуєте плагін Surefire для запуску тестів, тоді, коли у вас виникла тестова помилка, збірка зупиниться на фазі тесту інтеграції, і ваше тестове середовище інтеграції не буде зрушено належним чином.

Плагін Failsafe використовується під час тесту інтеграції та перевірки фаз життєвого циклу збірки для виконання інтеграційних тестів програми. Плагін Failsafe не вийде з ладу під час фази тестування інтеграції, тим самим дозволить виконати етап після інтеграції.


2
Тоді виникає питання: чому коли-небудь використовувати Surefire, якщо вони говорять нам, що він може залишити речі в неправильному стані?
користувач118967

6

У моїй країні є другим результатом google під час пошуку "maven failsafe maven safefire", щоб дістатися до цього FAQ: Різниця між maven-failsafe-плагіном і maven-surefire-плагіном, де зазначено:

maven-surefire-плагін призначений для запуску тестів одиниць, і якщо будь-який з тестів не вдасться, він не зможе зібрати відразу.

maven-failsafe-плагін призначений для запуску тестів інтеграції, і від'єднує помилки збірки, якщо є тестові збої з фактично запущених тестів. "

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.