java.lang.NoSuchMethod在IntelliJ IDEA中运行测试时出错



当我尝试执行单元测试时,我在AssertJ上得到一个NoSuchMethodError。make步骤运行良好,当导航到assertThat()的实现时,它运行良好。

模块依赖关系显示我使用的是org.assertj:assertj代码:1.2.0,正如我在build.gradle中定义的编译依赖关系(是的,编译而不是测试)。单元测试位于模块的主类路径中,因为它是一个集成测试,所以这是有意的。iml文件包含:

<orderEntry type="library"name="Gradle:org.assertj:assertj core:1.20"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/IntegrAssert;

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

我曾经尝试过使缓存无效,但没有起到任何作用。

我目前没有任何想法(并非双关语)。有谁见过这个吗?或者了解如何进行故障排除?

找到了。

我有另一个模块导入了AssertJ的新版本。不知怎么的(看起来像是IntelliJ中的一个bug),我的运行时却使用了那个。

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

最新更新