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

JUnit Jupiter中等价JUnit4测试套件的创建及兼容问题排查

二、解决json-simple导致的NoSuchMethodError冲突

冲突原因

com.googlecode.json-simple:json-simple:1.1.1这个依赖的jar包中包含了一个旧版本的JUnit类org.junit.runner.Description,这个类的createSuiteDescription方法签名和你项目中使用的JUnit 4.12版本的方法签名不匹配。当JUnitPlatform运行时,类加载器会优先加载json-simple里的这个旧类,导致找不到正确的方法,从而抛出NoSuchMethodError。

解决方法

有两种可靠的方案,任选其一即可:

方案1:排除json-simple中的JUnit依赖(推荐)

在Gradle构建脚本中,给json-simple依赖添加排除规则,移除它自带的JUnit相关依赖:

compile ('com.googlecode.json-simple:json-simple:1.1.1') {
    exclude group: 'junit', module: 'junit'
}

这样json-simple就不会把旧的JUnit类带入你的项目,项目会使用你自己声明的JUnit 4.12版本的类,冲突自然解决。

方案2:升级json-simple到无冲突版本

json-simple从1.1.2版本开始已经移除了JUnit依赖,你可以直接升级依赖版本:

compile 'com.googlecode.json-simple:json-simple:1.1.2'

或者使用最新的稳定版,既能避免冲突,也能获得后续的bug修复。

修改完依赖后,重新同步Gradle项目,再运行测试套件,应该就不会再出现那个错误了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 21:58:11