我创建了一个 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 来说这都是一个问题。
可以通过两种方式轻松解决:
- 更新到您选择的 IDE 的最新 TestNG 插件版本,希望发布的版本不会与您的项目所需的版本冲突
- 在 Eclipse(或 IntelliJ 等效项)中启用“使用项目 TestNG jar”。此设置可在项目特定设置的 TestNG 部分中找到。
第二种方式是首选,因为 TestNG 依赖项将由您的构建工具管理(您使用构建工具吗?!)并且您有更多的灵活性。
关于java - 无法在 IntelliJ 中使用 Snakeyaml 运行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5758854/