2011-04-22 136 views
2

我创建了一个使用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

任何想法?

+0

看看文件 - > proj结构 - >工件。可能有错误。只需点击“修复”按钮。也可以尝试从maven配置中重新创建itellij项目。 – 2011-04-22 19:59:01

+0

谢谢!重新创建IntelliJ项目修复了它。你知道为什么这是必需的吗? – 2011-04-22 21:06:11

+0

我将其作为答案发布。 – 2011-04-25 13:38:53

回答

1

看看file -> proj structure -> artifact s。可能有错误。只需点击“修复”按钮。也可以尝试从maven配置中重新创建itellij项目。通常图书馆的范围有问题,如TEST/PROVIDED

0

以下为我工作

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

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

在两个方面迎刃而解:

  1. 更新为您选择的IDE最新TestNG插件版本,希望出货的版本不会与你的项目
  2. 需要一个冲突启用“在Eclipse中使用Project TestNG jar“(或IntelliJ等价物)。该设置在项目特定设置的TestNG部分中提供。

第二种方法是(您使用一个构建工具,对吧?!)是首选,因为TestNG的依赖将通过您的构建工具进行管理,你有更多的灵活性。

相关问题