Was ist der Unterschied zwischen den Plugins Maven Surefire und Maven Failsafe?


Antworten:


138

Mit einfachen Worten, das Failsafe-Plugin wurde entwickelt, um Integrationstests auszuführen , während Surefire Unit-Tests ausführt .

Dies wird in den Maven-FAQ näher erläutert :

  • maven-surefire-pluginwurde für die Ausführung von Komponententests entwickelt. Wenn einer der Tests fehlschlägt, schlägt der Build sofort fehl.

  • maven-failsafe-pluginwurde für die Ausführung von Integrationstests entwickelt und entkoppelt fehlgeschlagene Builds, wenn Testfehler bei der tatsächlichen Ausführung der Tests auftreten.

    Der Name " fehlersicher " wurde sowohl gewählt, weil er ein Synonym für todsicher ist, als auch weil er impliziert, dass er auf sichere Weise versagt, wenn er fehlschlägt.

    Das Failsafe Plugin hat zwei Ziele:

Siehe auch:


4
Die interessante Frage ist warum . Viele Build-Tools funktionieren perfekt, ohne diese wohl eher künstliche und begrenzte Unterscheidung zu treffen. Beide Plugins zusammen zu konfigurieren und ihre Berichte auf konsistente Weise zu absorbieren, ist eine echte PITA.
— Raphael

Und nein, die in den anderen Antworten angegebenen Unterschiede bieten keinen ausreichenden Grund dafür, mehrere Tools für Filter und Flags zu haben.
— Raphael

27

Unter https://maven.apache.org/surefire/maven-failsafe-plugin/ würde ich sagen, dass der Unterschied zwischen Surefire und Failsafe darin besteht, wie sie versagen:

Wenn Sie das Surefire-Plugin zum Ausführen von Tests verwenden, wird der Build bei einem Testfehler in der Phase des Integrationstests gestoppt und Ihre Integrationstestumgebung wurde nicht ordnungsgemäß heruntergefahren.

Das Failsafe-Plugin wird während des Integrationstests verwendet und überprüft die Phasen des Build-Lebenszyklus, um die Integrationstests einer Anwendung auszuführen. Das Failsafe-Plugin schlägt den Build während der Integrationstestphase nicht fehl, sodass die Phase nach dem Integrationstest ausgeführt werden kann.


1
Dann stellt sich die Frage: Warum sollte man Surefire jemals benutzen, wenn sie uns sagen, dass es Dinge in einem falschen Zustand belassen kann?
— user118967

6

In meinem Land ist es das zweite Google-Ergebnis bei der Suche nach "Maven Failsafe Maven Surefire", um zu dieser FAQ zu gelangen: Unterschied zwischen Maven-Failsafe-Plugin und Maven-Surefire-Plugin mit folgenden Angaben :

Das Maven-Surefire-Plugin wurde für die Ausführung von Komponententests entwickelt. Wenn einer der Tests fehlschlägt, schlägt der Build sofort fehl.

Das Maven-Failsafe-Plugin wurde für die Ausführung von Integrationstests entwickelt und entkoppelt fehlgeschlagene Builds, wenn bei der tatsächlichen Ausführung der Tests Testfehler auftreten. "

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.