Maven项目运行JUnit5测试报junit-jupiter引擎无法发现测试错误求解
解决方案
- 检查测试类命名规则:你当前pom中maven-surefire-plugin配置的测试文件匹配规则仅包含
*Tests.java、*Examples.java、*Properties.java后缀的类,若你的测试类为单数*Test.java结尾,要么修改类名符合规则,要么在surefire的节点下新增 <include>**/*Test.java</include>。 - 修正测试目录标记:确认你的测试类存放在配置的
${project.basedir}/src/tests路径下,且IDEA已将该目录标记为测试源码根:右键目录 → 选择「Mark Directory as」 → 点击「Test Sources Root」,目录会变为绿色测试文件夹标识。 - 显式引入JUnit引擎依赖:部分IDEA或Maven插件版本无法从聚合依赖中自动识别JUnit Jupiter测试引擎,在
节点下新增以下依赖:
<dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.8.1</version> <scope>test</scope> </dependency>
- 更新maven-surefire-plugin版本:你当前使用的3.0.0-M5为里程碑测试版本,存在多测试引擎(JUnit Jupiter + jqwik)兼容问题,将插件版本升级为稳定版
3.2.2即可。 - 检查测试类/方法注解规范:
- 测试类必须为
public修饰,无私有/保护访问控制 - 普通JUnit测试方法需标注
org.junit.jupiter.api.Test注解,方法为public、无返回值、无入参 - jqwik测试方法需标注
@Property注解,符合jqwik用例规范
- 测试类必须为
- 清空IDEA缓存重启:依次点击File → Invalidate Caches... → 勾选「Clear file system cache and local history」 → 点击「Invalidate and Restart」,重置IDE索引后重新运行测试。
内容的提问来源于stack exchange,提问作者Yavuz Erkal
相关产品推荐
相关产品推荐

