繁体   English   中英

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

[英]Unable to run unit tests with Snakeyaml in IntelliJ

我创建了一个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 / constructor / BaseConstructor;)V

有任何想法吗?

这是由于TestNG插件引起的。 对于IntelliJ和Eclipse来说都是一个问题。

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

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

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

下面为我​​工作

<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>

看一下file -> proj structure -> artifact s。 可能有错误。 只需单击“修复”按钮。 还可以尝试从Maven配置重新创建itellij项目。 通常,库范围会遇到麻烦,例如TEST/PROVIDED

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM