------ Introduction ------ Stephen Connolly Allan Ramirez ------ May 2009 ------ 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: * <<>> for setting up the integration test environment. * <<>> for running the integration tests. * <<>> for tearing down the integration test environment. * <<>> 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 <<>> phase and your integration test environment will not have been torn down correctly. The Failsafe Plugin is used during the <<>> and <<>> phases of the build lifecycle to execute the integration tests of an application. The Failsafe Plugin will not fail the build during the <<>> phase thus enabling the <<>> 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 <<>> phase directly, as otherwise the <<>> 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 {{{http://maven.apache.org/plugins/maven-surefire-report-plugin/}Maven Surefire Report Plugin}}. * Goals Overview The Failsafe Plugin has only 2 goals: * {{{integration-test-mojo.html}failsafe:integration-test}} runs the integration tests of an application. * {{{verify-mojo.html}failsafe:verify}} verifies that the integration tests of an application passed. [] * Usage Instructions on how to use the Failsafe Plugin can be found on the {{{usage.html}usage page}}. * Examples The following examples show how to use the Failsafe Plugin in more advanced use-cases: * {{{examples/testng.html}Using TestNG}} * {{{examples/skipping-test.html}Skipping Tests}} * {{{examples/inclusion-exclusion.html}Inclusions and Exclusions of Tests}} * {{{examples/single-test.html}Running a Single Test}} * {{{examples/class-loading.html}Class Loading Issues}} * {{{examples/debugging.html}Debugging Tests}} * {{{examples/system-properties.html}Using System Properties}} * {{{examples/additional-classpath.html}Additional Classpath Elements}} []