JUnit NoSuchMethodError 异常分析
错误现象
初始化的项目运行时报错:
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)
...
原因分析
java.lang.NoSuchMethodError 错误表明在运行时,JVM 尝试调用 org.junit.platform.engine.discovery.MethodSelector.getMethodParameterTypes() 方法,但当前加载的 MethodSelector 类版本中并没有这个方法。这通常是由于 JUnit 平台库的不同版本之间存在不兼容 所致。
解决方案
可在 pom.xml 文件中修改 spring-boot-starter-parent 的版本号,调整为兼容版本:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.17</version>
<relativePath/>
</parent>

