The Failsafe Plugin is designed to run integration tests while the Surefire Plugins is designed to run unit. 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 Maven lifecycle has four phases for running integration tests:
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.
NOTE: when running integration tests, you should invoke maven with the (shorter to type too)
mvn verify
rather than trying to invoke the integration-test phase directly, as otherwise the post-integration-test phase will not be executed.
The Failsafe Plugin generates reports in 2 different file formats:
By default, these files are generated at ${basedir}/target/failsafe-reports.
For an HTML format of the report, please see the Maven Surefire Report Plugin.
The Failsafe Plugin has only 2 goals:
Instructions on how to use the Failsafe Plugin can be found on the usage page.
The following examples show how to use the Failsafe Plugin in more advanced use-cases: