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

时间:2011-04-22 18:47:55

标签: 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)

具体例外是:

  

java.lang.NoSuchMethodError:   org.yaml.snakeyaml.Yaml(Lorg / YAML / snakeyaml /构造/ BaseConstructor):V

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

这是因为TestNG插件。这对IntelliJ和Eclipse都是一个问题。

以两种方式轻松解决:

  1. 更新为您选择的IDE的最新TestNG插件版本,希望发布的版本与您的项目所需的版本不冲突
  2. 启用"使用Project TestNG jar"在Eclipse中(或IntelliJ等价物)。此设置可在项目特定设置的TestNG部分中找到。
  3. 第二种方式是首选方式,因为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>