我创建了一个Java组件,它使用SnakeYaml读取YAML文件。我使用的环境是带有Maven插件的IntelliJ,我的项目是使用Maven pom文件构建的。当我运行Maven测试项目时,我的单元测试所有通过。但是,当我直接在IntelliJ中运行单元测试时,它们会失败。
具体来说,下面的调用new Yaml(myConstructor)抛出异常:
Constructor myConstructor = new Constructor(....)
Yaml yaml = new Yaml(myConstructor)
具体例外是:
java.lang.NoSuchMethodError: org.yaml.snakeyaml.Yaml(Lorg / YAML / snakeyaml /构造/ BaseConstructor):V
有什么想法吗?
答案 0 :(得分:2)
这是因为TestNG插件。这对IntelliJ和Eclipse都是一个问题。
以两种方式轻松解决:
第二种方式是首选方式,因为TestNG依赖项将由您的构建工具管理(您使用构建工具吗?对吗?)并且您具有更大的灵活性。
答案 1 :(得分:1)
看看file -> proj structure -> artifact
s。可能有错误。只需点击“修复”按钮即可。还可以尝试从maven配置重新创建itellij项目。通常,库范围存在问题,例如TEST/PROVIDED
。
答案 2 :(得分:1)
以下为我工作
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.2</version>
<type>jar</type>
<exclusions>
<exclusion>
<artifactId>snakeyaml</artifactId>
<groupId>org.yaml</groupId>
</exclusion>
</exclusions>
</dependency>