2. 插件目标
Surefire 插件的核心功能是执行项目的单元测试。默认情况下,它会在 target/surefire-reports
目录下生成 XML 格式的测试报告。
该插件只有一个目标:test
。这个目标默认绑定到 Maven 生命周期中的 test
阶段,执行 mvn test
命令时会自动触发。⚠️ 注意:测试失败会导致构建中断,这是 Maven 的默认行为。
3. 配置详解
Surefire 插件天然支持 JUnit 和 TestNG 测试框架。无论使用哪种框架,核心行为保持一致。
3.1 默认扫描规则
默认情况下,Surefire 自动扫描并执行符合以下命名规则的测试类:
- 文件名以
Test
开头 - 文件名以
Test
、Tests
或TestCase
结尾
3.2 自定义包含/排除规则
通过 includes
和 excludes
参数可灵活控制测试范围:
<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 的核心要点:
- 单一目标
test
绑定到生命周期测试阶段 - 支持主流测试框架(JUnit/TestNG)
- 通过
includes/excludes
精准控制测试范围 - 测试报告默认输出到
target/surefire-reports
完整示例代码可参考 GitHub 仓库。