java - AssertJ本地构建时没有这样的方法错误

标签 java maven assertj

我在本地构建多模块项目期间遇到问题。

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.118 
sec <<< FAILURE! - in org.end2end.ClientEnd2EndIT
org.end2end.ClientEnd2EndIT  Time elapsed: 0.118 sec  <<< ERROR!
java.lang.NoSuchMethodError: 
org.assertj.core.util.Throwables.
              appendStackTraceInCurrentThreadToThrowable

正是在测试的 setupClass 方法中执行此指令时:

frame = GuiActionRunner.execute(() -> GUI.createGui(false));

其中 GuiActionRunner.execute() 是 AssertJ 依赖的方法。在同一个项目中,我在 End2End 模块之前构建客户端,即使在客户端的集成测试中也会执行该指令,但在这种情况下,不会发生 NoSuchMethodError 。我会指定,如果我在 macOS 系统下或在 Travis-ci(Linux 和 mac 构建)上构建,则不会出现此问题。这似乎只是一个本地问题(我使用的是 linux Mint 18.2)。有人可以帮忙吗?

最佳答案

已解决。问题是创建 jframe 时抛出隐藏的 headless 异常,这是由于我调用的事实:

SpringApplicationBuilder builder = new 
SpringApplicationBuilder(ServerApplication.class);
builder.run(new String[] { "--server.port=9999" });

我通过添加解决:

SpringApplicationBuilder builder = new SpringApplicationBuilder(ServerApplication.class);
    builder.headless(false); //this line
    builder.run(new String[] { "--server.port=9999" });

关于java - AssertJ本地构建时没有这样的方法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49841585/

相关文章:

java - FileWriter 没有写入我的所有数据

spring-boot - 具有参数化的Dockerfile:失败并显示XXX

java - 访问另一个项目中的 Gradle 插件依赖项

java - JUnit 测试 JTable 单元格工具提示

java - 默认值发生了什么变化?

java - 尝试在 if 语句中制作动画

java - 删除与进程关联的临时文件夹中的文件

java - 如何将 SASS 插件目标绑定(bind)到 tomcat7 部署阶段(maven)

java - 获取包 org.assertj.core.api 不存在,即使我在我的 pom 中指定版本 3.6.2 同时使用 JDK 1.8

java - 泛型和 ClassCastException : why do I get this exception, 我该如何处理 "work around"呢?