1. 概述

这篇简明教程介绍 Maven 构建工具的核心插件之一——failsafe 插件。关于其他核心插件的概述,可参考这篇文章

2. 插件目标

failsafe 插件专门用于项目的集成测试,包含两个核心目标:

  • integration-test – 运行集成测试;默认绑定到 integration-test 阶段
  • verify – 验证集成测试是否通过;默认绑定到 verify 阶段

3. 目标执行

该插件与 surefire 插件类似,都能运行测试类中的方法,配置方式也相近。但两者存在关键差异:

差异点 1:显式声明
与 surefire 插件(见这篇文章)不同,surefire 已包含在超级 pom.xml 中,而 failsafe 插件及其目标必须显式声明pom.xml 中才能参与构建生命周期:

<plugin>
    <artifactId>maven-failsafe-plugin</artifactId>
    <version>3.1.2</version>
    <executions>
        <execution>
            <goals>
                <goal>integration-test</goal>
                <goal>verify</goal>
            </goals>
            <configuration>
                ...
            </configuration>
        </execution>
    </executions>
</plugin>

插件最新版本可查看这里

差异点 2:失败处理机制
failsafe 插件通过分离的目标实现测试运行与验证:
integration-test 阶段的测试失败不会立即终止构建,允许后续执行 post-integration-test 阶段(用于清理资源)。
⚠️ 失败的测试仅在 verify 阶段报告,此时集成测试环境已正确拆除。

4. 结论

本文介绍了 failsafe 插件的核心功能,并与测试领域另一常用插件 surefire 进行了对比分析。
完整示例代码可在 GitHub 获取。