2. 插件目标

Surefire 插件的核心功能是执行项目的单元测试。默认情况下,它会在 target/surefire-reports 目录下生成 XML 格式的测试报告。

该插件只有一个目标:test。这个目标默认绑定到 Maven 生命周期中的 test 阶段,执行 mvn test 命令时会自动触发。⚠️ 注意:测试失败会导致构建中断,这是 Maven 的默认行为。

3. 配置详解

Surefire 插件天然支持 JUnit 和 TestNG 测试框架。无论使用哪种框架,核心行为保持一致。

3.1 默认扫描规则

默认情况下,Surefire 自动扫描并执行符合以下命名规则的测试类:

  • 文件名以 Test 开头
  • 文件名以 TestTestsTestCase 结尾

3.2 自定义包含/排除规则

通过 includesexcludes 参数可灵活控制测试范围:

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.22.2</version>
    <configuration>
        <excludes>
            <exclude>DataTest.java</exclude> <!-- 跳过该测试类 -->
        </excludes>
        <includes>
            <include>DataCheck.java</include> <!-- 仅执行该测试类 -->
        </includes>
    </configuration>
</plugin>

✅ 配置效果:

  • DataCheck.java 中的测试用例会被执行
  • DataTest.java 中的测试用例会被忽略

踩坑提醒:错误配置可能导致测试被静默跳过!建议通过 mvn test -X 查看详细日志排查。

3.3 版本选择

最新版本可通过 Maven 中央仓库获取(当前示例使用 2.22.2)。升级版本前务必查看官方变更日志,避免不兼容问题。

4. 总结

本文快速梳理了 Maven Surefire Plugin 的核心要点:

  1. 单一目标 test 绑定到生命周期测试阶段
  2. 支持主流测试框架(JUnit/TestNG)
  3. 通过 includes/excludes 精准控制测试范围
  4. 测试报告默认输出到 target/surefire-reports

完整示例代码可参考 GitHub 仓库


原始标题:Quick Guide to the Maven Surefire Plugin | Baeldung