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

迁移至Spring Boot 3.2.1后JUnit测试出现NoSuchMethodError问题求助

解决方案:JUnit Jupiter版本依赖冲突修复

错误原因

java.lang.NoSuchMethodError: 'org.junit.jupiter.api.extension.ExecutableInvoker org.junit.jupiter.api.extension.ExtensionContext.getExecutableInvoker()' 这个错误的核心是项目依赖的JUnit Jupiter版本低于5.9.0——该方法是JUnit Jupiter 5.9.0才新增的API。

你的项目里,Spring Boot 3.2.1默认绑定JUnit Jupiter 5.10.1,但由于spring-cloud-azure-dependencies BOM的导入优先级高于Spring Boot自身的依赖管理BOM,导致JUnit版本被Azure BOM中的旧版本覆盖,引发了兼容性问题。

修复步骤

修改build.gradle中的dependencyManagement配置,优先导入Spring Boot的依赖BOM,确保Spring Boot管控的依赖版本(包括JUnit Jupiter)不会被其他BOM覆盖:

dependencyManagement {
    imports {
        // 先导入Spring Boot的依赖BOM,保障版本优先级
        mavenBom "org.springframework.boot:spring-boot-dependencies:${springBootVersion}"
        mavenBom "com.azure.spring:spring-cloud-azure-dependencies:${springCloudAzureVersion}"
    }
}

验证方法

执行Gradle命令查看测试依赖树,确认JUnit Jupiter版本是否为5.9.0及以上:

./gradlew dependencies --configuration testImplementation

在输出中定位org.junit.jupiter:junit-jupiter-api,确认版本号与Spring Boot 3.2.1绑定的版本一致(应为5.10.1)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 18:43:21