在IntelliJ IDEA

时间:2016-05-27 11:03:30

标签: 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 /型芯/ API / IntegerAssert;

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

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

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

1 个答案:

答案 0 :(得分:2)

找到它。

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

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