springboot4下的junit运行出错

问题描述

在idea2023.2版本中,使用junit运行单元测试时出错

错误信息

java 复制代码
Exception in thread "main" java.lang.NoSuchMethodError: 'java.lang.String org.junit.platform.engine.discovery.MethodSelector.getMethodParameterTypes()'
	at com.intellij.junit5.JUnit5TestRunnerUtil.loadMethodByReflection(JUnit5TestRunnerUtil.java:127)
	at com.intellij.junit5.JUnit5TestRunnerUtil.buildRequest(JUnit5TestRunnerUtil.java:102)
	at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:43)
	at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
	at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
	at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
	at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)
	at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)

环境配置

xml 复制代码
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
    <spring-boot-version>4.0.7</spring-boot-version>
    <spring-cloud.version>2025.1.2</spring-cloud.version>
    <spring-cloud-alibaba.version>2025.1.0.0</spring-cloud-alibaba.version>
  </properties>

被运行的代码

java 复制代码
public class MyTest {
    @Test
    public void test() {
        System.out.println("hello world");
    }
}

解决方案

更换idea版本,问题就解决了

之前用的版本是2023.2.5

更换新的版本是2026.1.3

AI给出的解决方案

试了一下AI给出的解决方案,发现不能解决问题,最后是通过搜索引擎查找到的解决方案。

一共试了两轮,第一轮说spring-boot-4.07不存在;第二轮说要修改pom.xml,手动引入junit版本。