What is the difference between the Maven Surefire and Maven Failsafe plugins?

MavenMaven Surefire-PluginMaven Failsafe-Plugin

Maven Problem Overview


What is the difference between Maven Surefire and Maven Failsafe plugins?
I have searched all over web, but did not get the answer.

Maven Solutions


Solution 1 - Maven

In simple words, the Failsafe plugin is designed to run integration tests while Surefire to run unit tests.

This is further explained in Maven FAQ:

> - maven-surefire-plugin is designed for running unit tests and if any of the tests fail then it will fail the build immediately.

> - maven-failsafe-plugin is designed for running integration tests, and decouples failing the build if there are test failures from actually running the tests.

> The name "failsafe" was chosen both because it is a synonym of surefire and because it implies that when it fails, it does so in a safe way.

> The Failsafe Plugin has two goals:

> - failsafe:integration-test runs the integration tests of an application, > - failsafe:verify verifies that the integration tests of an application passed.

See also:

Solution 2 - Maven

From https://maven.apache.org/surefire/maven-failsafe-plugin/, I would say that the difference between Surefire and Failsafe is the way they fail:

> If you use the Surefire Plugin for running tests, then when you have a test failure, the build will stop at the integration-test phase and your integration test environment will not have been torn down correctly. > > The Failsafe Plugin is used during the integration-test and verify phases of the build lifecycle to execute the integration tests of an application. The Failsafe Plugin will not fail the build during the integration-test phase, thus enabling the post-integration-test phase to execute.

Solution 3 - Maven

In my country its the second google result when searching for "maven failsafe maven surefire" to get to this FAQ: Difference between maven-failsafe-plugin and maven-surefire-plugin which states:

>maven-surefire-plugin is designed for running unit tests and if any of the tests fail then it will fail the build immediately. > > maven-failsafe-plugin is designed for running integration tests, and > decouples failing the build if there are test failures from actually > running the tests."

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionbugCrackerView Question on Stackoverflow
Solution 1 - MavenkenorbView Answer on Stackoverflow
Solution 2 - MavenJonas WolfView Answer on Stackoverflow
Solution 3 - MavenJBAView Answer on Stackoverflow