执行mvn clean test时Maven未运行JUnit单元测试该如何解决?
Maven未执行JUnit5单元测试的原因及修复方案
1. maven-surefire-plugin版本兼容性问题
你当前使用的3.0.0-M5是里程碑测试版本,本身存在JUnit5适配缺陷,且低版本的surefire插件默认不支持JUnit5的测试用例扫描,需要额外添加适配依赖。
修复方案二选一即可:
- 升级到稳定版surefire插件,原生支持JUnit5,无需额外配置:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.2.5</version> </plugin>
- 若必须保留当前版本,补充JUnit5 Provider依赖:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M5</version> <dependencies> <dependency> <groupId>org.junit.platform</groupId> <artifactId>junit-platform-surefire-provider</artifactId> <version>1.8.1</version> </dependency> </dependencies> </plugin>
2. 测试类/方法不符合扫描规则
Maven默认只会扫描符合以下规则的测试用例:
- 测试类命名以
*Test、*Tests、*TestCase结尾,例如OrderServiceTest.java,不符合命名规则的类不会被识别为测试类 - 测试方法必须标注
org.junit.jupiter.api.Test注解(注意区分JUnit4的org.junit.Test注解,二者不能混用) - 测试类不能是抽象类,必须包含无参构造方法
- 测试方法不能用private、static修饰,不能有返回值和入参
3. IDEA项目配置错误
可依次排查以下配置项:
- 确认
src/test/java目录已被标记为测试源根:右键目录→「Mark Directory as」→「Test Sources Root」,标记后目录图标为绿色 - 确认测试类存放在
src/test/java目录下,而非src/main/java或src/test/resources目录 - 清理IDEA缓存后重试:点击顶部菜单「File → Invalidate Caches...」,选择清理并重启IDEA
修改配置后重新执行mvn clean test,即可看到测试用例正常执行。
内容的提问来源于stack exchange,提问作者ritratt
相关产品推荐
相关产品推荐

