java - 无法在 IntelliJ 中使用 Snakeyaml 运行单元测试

标签 java intellij-idea snakeyaml

我创建了一个 Java 组件,它使用 SnakeYaml 读取 YAML 文件。我使用的环境是带有 Maven 插件的 IntelliJ,我的项目是使用 Maven pom 文件构建的。当我运行 Maven 测试项目时,我的单元测试全部通过。但是,当我直接在 IntelliJ 中运行单元测试时,它们失败了。

具体来说,下面的调用 new Yaml(myConstructor) 会引发异常:

Constructor myConstructor = new Constructor(....)
Yaml yaml = new Yaml(myConstructor)

具体的异常(exception)是:

java.lang.NoSuchMethodError: org.yaml.snakeyaml.Yaml.(Lorg/yaml/snakeyaml/constructor/BaseConstructor;)V

有什么想法吗?

最佳答案

发生这种情况是因为 TestNG 插件。对于 IntelliJ 和 Eclipse 来说这都是一个问题。

可以通过两种方式轻松解决:

  1. 更新到您选择的 IDE 的最新 TestNG 插件版本,希望发布的版本不会与您的项目所需的版本冲突
  2. 在 Eclipse(或 IntelliJ 等效项)中启用“使用项目 TestNG jar”。此设置可在项目特定设置的 TestNG 部分中找到。

第二种方式是首选,因为 TestNG 依赖项将由您的构建工具管理(您使用构建工具吗?!)并且您有更多的灵活性。

关于java - 无法在 IntelliJ 中使用 Snakeyaml 运行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5758854/

相关文章:

java - 无法从 IntelliJ IDEA 启动 Tomcat

java - 将 YAML 反序列化为 JAVA

java - jpa 2和hibernate一起+hibernate自定义类型+spring

Java RMI : What is the role of the stub-skeleton that are generated by the rmic compiler

Java 9、Jigsaw 和自动模块

intellij-idea - IntelliJ 按文件路径重新排序更改选项卡

java - Java 中深度嵌套的 hashmap

parsing - 如何在 SnakeYaml 中省略数据类型标签?

java - 如何将来自不同项目的 JSP 文件包含到我的项目中

java - 为什么静态变量是序列化的?