无法在IntelliJ中使用Snakeyaml运行单元测试
问题描述:
我创建了一个使用SnakeYaml读取YAML文件的Java组件。我使用的环境是带有Maven插件的IntelliJ,我的项目是使用Maven pom文件构建的。当我运行Maven测试项目时,我的单元测试全部通过。但是,当我直接在IntelliJ中运行单元测试时,它们会失败。无法在IntelliJ中使用Snakeyaml运行单元测试
具体来说,调用新的YAML(myConstructor)下面抛出一个异常:
Constructor myConstructor = new Constructor(....)
Yaml yaml = new Yaml(myConstructor)
具体的例外是:
java.lang.NoSuchMethodError: org.yaml.snakeyaml.Yaml.(Lorg/yaml/snakeyaml/constructor/BaseConstructor;)V
任何想法?
答
看看file -> proj structure -> artifact
s。可能有错误。只需点击“修复”按钮。也可以尝试从maven配置中重新创建itellij项目。通常图书馆的范围有问题,如TEST/PROVIDED
。
答
以下为我工作
<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>
答
这是因为TestNG插件的。 IntelliJ和Eclipse都是一个问题。
在两个方面迎刃而解:
- 更新为您选择的IDE最新TestNG插件版本,希望出货的版本不会与你的项目
- 需要一个冲突启用“在Eclipse中使用Project TestNG jar“(或IntelliJ等价物)。该设置在项目特定设置的TestNG部分中提供。
第二种方法是(您使用一个构建工具,对吧?!)是首选,因为TestNG的依赖将通过您的构建工具进行管理,你有更多的灵活性。
看看文件 - > proj结构 - >工件。可能有错误。只需点击“修复”按钮。也可以尝试从maven配置中重新创建itellij项目。 – 2011-04-22 19:59:01
谢谢!重新创建IntelliJ项目修复了它。你知道为什么这是必需的吗? – 2011-04-22 21:06:11
我将其作为答案发布。 – 2011-04-25 13:38:53