最常用且标准的方式是运行 mvn test 命令,它会自动编译主代码与测试代码(src/test/java 下符合命名约定的类,如 *test 或 test*),执行带 @test 注解的 public 无参无返回值方法,并通过 surefire 插件生成报告至 target/surefire-reports/。

在 Maven 项目中执行所有单元测试,最常用且标准的方式是运行 mvn test 命令。
确保测试类符合 Maven 约定
Maven 默认只识别满足以下条件的测试类:
- 类名以 Test 开头或结尾(如
UserServiceTest、TestUserService) - 或类名包含 Test(如
UserServiceIntegrationTest) - 测试方法需用
@Test注解(JUnit 4/5),且为 public、无参数、无返回值 - 测试类必须放在
src/test/java/目录下,资源文件放在src/test/resources/
常用命令与场景
根据需求选择合适命令:
-
mvn test:编译主代码和测试代码,然后运行所有单元测试(默认使用 Surefire 插件) -
mvn clean test:先清理target/目录,再重新编译并运行测试(推荐日常使用,避免旧 class 干扰) -
mvn test -Dtest=UserServiceTest:只运行指定测试类 -
mvn test -Dtest=UserServiceTest#testCreateUser:只运行某个具体测试方法 -
mvn test -Dmaven.surefire.debug:以调试模式启动测试,便于在 IDE 中远程调试
检查 Surefire 插件配置(必要时)
如果测试未被发现或执行异常,可检查 pom.xml 中 Surefire 插件是否显式配置了排除规则或错误的包含模式。默认配置通常无需修改,但若自定义过,确保类似如下设置合理:
<plugin><groupid>org.apache.maven.plugins</groupid><artifactid>maven-surefire-plugin</artifactid><version>3.2.5</version><configuration><includes><include>**/*Test.java</include></includes></configuration></plugin>
注意:JUnit 5 需额外添加 surefire-junit-platform 依赖(Maven 3.8.1+ 通常已内置支持)。
查看测试结果
运行完成后,Maven 会在控制台输出简要结果(如 “Tests run: 12, Failures: 0, Errors: 0”),详细报告生成在:
target/surefire-reports/ 目录下,含 XML 和文本格式报告,也可集成到 CI 工具(如 Jenkins)中解析。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











