You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JUnit5测试无法被Maven及IntelliJ识别执行,该如何解决?

问题根因

  • 依赖版本不兼容:JUnit Jupiter 5.8.0版本新增了org.junit.jupiter.api.ClassOrderer类,而maven-surefire-plugin 2.22.2内置的JUnit平台启动器版本仅适配JUnit 5.3.x及更低版本,无法加载高版本JUnit的新增类,导致测试引擎初始化失败,这是IDEA报错的直接原因。
  • 插件配置缺失:2.22.x版本的maven-surefire-plugin要支持JUnit5,需要显式引入对应版本的junit-platform-surefire-provider依赖,你当前插件的依赖配置为空,默认使用内置的旧版本provider,无法适配高版本JUnit5。
  • 测试类命名不符合默认规则:maven-surefire-plugin默认只扫描名称符合*Test、*Tests、*TestCase、Test*前缀的类作为测试类,你的测试类名为MyTestClass,不符合默认匹配规则,会导致Maven扫描不到测试用例,触发No tests were executed报错。

解决方案

第一步:修正测试类命名(必做)

将测试类名MyTestClass改为符合默认规则的名称,例如MyTest,或者在maven-surefire-plugin的configuration节点中添加自定义扫描规则:

<configuration>
    <includes>
        <include>**/*TestClass.java</include>
    </includes>
    <!-- 原有其他配置 -->
</configuration>

第二步:修复版本兼容问题,二选一即可

方案一(推荐):升级maven-surefire-plugin到3.x版本

3.x版本的maven-surefire-plugin对JUnit5的支持更完善,不需要额外配置provider即可适配高版本JUnit5,修改插件配置如下:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>3.2.2</version>
    <configuration>
        <trimStackTrace>false</trimStackTrace>
        <printSummary>true</printSummary>
        <excludes>
            <exclude>integration/*.java</exclude>
        </excludes>
        <!-- 如有自定义include规则也放在这里 -->
    </configuration>
</plugin>

方案二:保留2.22.2版本,补全插件依赖

如果不方便升级插件版本,在maven-surefire-plugin的dependencies节点中加入对应版本的JUnit平台provider:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.22.2</version>
    <dependencies>
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-surefire-provider</artifactId>
            <version>1.8.0</version>
        </dependency>
    </dependencies>
    <configuration>
        <trimStackTrace>false</trimStackTrace>
        <printSummary>true</printSummary>
        <excludes>
            <exclude>integration/*.java</exclude>
        </excludes>
        <!-- 如有自定义include规则也放在这里 -->
    </configuration>
</plugin>

第三步:重置依赖生效

修改完成后执行以下操作确保配置生效:

  1. 执行mvn clean test -U强制更新依赖并运行测试,单个测试用例的正确执行命令为mvn test -Dtest=MyTest#test(你之前的命令多写了一个重复的test参数,无影响但可省略)
  2. 若IDEA仍报错,右键项目 -> Maven -> Reload Project刷新项目依赖
  3. 若仍有异常,清除IDEA缓存:File -> Invalidate Caches -> 勾选Clear file system cache and local history -> 重启IDEA即可

内容的提问来源于stack exchange,提问作者Johnyb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 08:45:05