在初始化项目并尝试运行测试时,如果控制台抛出 Exception in thread "main" java.lang.NoSuchMethodError,通常意味着类路径下的 JUnit 版本存在冲突。
具体报错信息如下:
Exception in thread "main" java.lang.NoSuchMethodError: 'java.lang.String org.junit.platform.engine.discovery.MethodSelector.getMethodParameterTypes()'
这个异常表明 JVM 在运行时试图调用 org.junit.platform.engine.discovery.MethodSelector.getMethodParameterTypes() 方法,但当前加载的类版本中并不包含该方法。这种情况大多发生在 JUnit 平台库的不同版本之间不兼容时,常见于 Spring Boot 项目依赖管理未生效或手动引入了旧版 JUnit 依赖。
处理建议
最稳妥的方式是通过修改 Maven 父工程的版本号来统一依赖。建议将 spring-boot-starter-parent 升级到较新的稳定版本,例如 2.7.17,它内置了兼容的 JUnit 5 依赖配置。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.17</version>
<relativePath/>
</parent>
应用上述修改后,刷新 Maven 依赖并重新构建项目即可解决。如果问题依然存在,可以使用 mvn dependency:tree 命令查看依赖树,确认是否有其他模块强制引入了低版本的 JUnit 平台库。

