Quelle est la différence entre les plugins Maven Surefire et Maven Failsafe?


Réponses:


141

En termes simples, le plugin Failsafe est conçu pour exécuter des tests d'intégration tandis que Surefire pour exécuter des tests unitaires .

Ceci est expliqué plus en détail dans la FAQ Maven :

  • maven-surefire-pluginest conçu pour exécuter des tests unitaires et si l'un des tests échoue, la génération échouera immédiatement.

  • maven-failsafe-pluginest conçu pour exécuter des tests d'intégration et dissocie l'échec de la construction en cas d'échec de test de l'exécution réelle des tests.

    Le nom de « sécurité intégrée » a été choisi à la fois parce qu'il est synonyme de sécurité et parce qu'il implique que lorsqu'il échoue, il le fait de manière sûre.

    Le plugin Failsafe a deux objectifs:

Voir également:


4
La question intéressante est pourquoi . De nombreux outils de construction fonctionnent parfaitement sans faire cette distinction sans doute plutôt artificielle et limitée. Configurer les deux plugins ensemble et absorber leurs rapports de manière cohérente est tout à fait le PITA.
— Raphael

Et non, les différences énoncées dans les autres réponses ne fournissent pas une raison suffisante pour avoir plusieurs outils pour ce que devraient être des filtres et des indicateurs.
— Raphael

27

De https://maven.apache.org/surefire/maven-failsafe-plugin/ , je dirais que la différence entre Surefire et Failsafe est la façon dont ils échouent:

Si vous utilisez le plug-in Surefire pour exécuter des tests, lorsque vous rencontrez un échec de test, la compilation s'arrêtera à la phase de test d'intégration et votre environnement de test d'intégration n'aura pas été détruit correctement.

Le plug-in Failsafe est utilisé pendant les phases de test d'intégration et de vérification du cycle de vie de construction pour exécuter les tests d'intégration d'une application. Le plug-in Failsafe n'échouera pas la construction pendant la phase de test d'intégration, permettant ainsi à la phase de test post-intégration de s'exécuter.


2
Ensuite, la question devient: pourquoi utiliser Surefire s'ils nous disent qu'il peut laisser des choses dans un état incorrect?
— user118967

6

Dans mon pays, c'est le deuxième résultat Google lors de la recherche de "maven failafe maven surefire" pour accéder à cette FAQ: Différence entre maven-failafe-plugin et maven-surefire-plugin qui stipule:

maven-surefire-plugin est conçu pour exécuter des tests unitaires et si l'un des tests échoue, la compilation échouera immédiatement.

maven-failafe-plugin est conçu pour exécuter des tests d'intégration, et dissocie l'échec de la construction en cas d'échec des tests de l'exécution réelle des tests. "

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.