Maven Failsafe Plugin

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:

  • pre-integration-test for setting up the integration test environment.
  • integration-test for running the integration tests.
  • post-integration-test for tearing down the integration test environment.
  • verify for checking the results of the 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:

  • Plain text files (*.txt)
  • XML files (*.xml)

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.

Goals Overview

The Failsafe Plugin has only 2 goals:

Usage

Instructions on how to use the Failsafe Plugin can be found on the usage page.