intellij-idea - 在 IntelliJ IDEA 中运行测试时出现 java.lang.NoSuchMethodError

标签 intellij-idea gradle junit classpath assertj

当我尝试执行单元测试时,我在 AssertJ 上收到 NoSuchMethodError。 make 步骤工作正常,当导航到 assertThat() 的实现时,它工作得很好。

模块依赖项显示我正在使用 org.assertj:assertj-code:1.2.0,因为我在 build.gradle 中定义为编译依赖项(是的,编译而不是测试)。单元测试驻留在我的模块的主类路径中,因为它是一个集成测试,所以这是故意的。 iml 文件包含:

<orderEntry type="library" name="Gradle: org.assertj:assertj-core:1.2.0" level="project" />



我的示例测试是:
import org.assertj.core.api.Assertions;
import org.junit.Test;

public class X {
    @Test
    public void x(){
        Assertions.assertThat(1).isEqualTo(1);
    }
}

当我执行它时,我得到:

java.lang.NoSuchMethodError: org.assertj.core.api.Assertions.assertThat(I)Lorg/assertj/core/api/IntegerAssert;



当我查看运行配置时,类路径设置为正确的模块(包含 AssertJ 的模块)。

我尝试过使缓存无效,但这没有帮助。

我目前没有想法(没有双关语)。
有谁以前见过这个吗?或者有关于如何进行故障排除的线索?

最佳答案

找到了。

我有另一个模块导入了更新版本的 AssertJ。不知何故(似乎是 IntelliJ 中的一个错误)我的运行时正在使用那个。

我将跟踪我报告的错误:https://youtrack.jetbrains.com/issue/IDEA-156718并发布更新。

关于intellij-idea - 在 IntelliJ IDEA 中运行测试时出现 java.lang.NoSuchMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37481829/

相关文章:

maven - 构建一个 gradle 存储库

android - 如何有效地支持代码中稍有不同的多个Android项目?

ant - junitreport ant任务给出java.lang.OutOfMemoryError : Java heap space

unit-testing - 查看intellij中的条件覆盖率

java - Gradle拉取依赖时版本冲突

java - 使用Jenkins和Gradle运行Flyway迁移-无法解析位置classpath:db/migration

intellij-idea - IntelliJ : limit Find in Path scope to files tracked in VCS

java - Struts 2 Junit 测试用例执行失败(StrutsTestCase.getActionProxy :138 » NullPointer)

java - Intellij 中奇怪的 Javadoc 包装

intellij-idea - IntelliJ IDEA - 未找到实现