2011-04-22 134 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的依賴將通過您的構建工具進行管理,你有更多的靈活性。

相關問題