我有一個Maven管理的項目,它在單元測試中使用Mockito模擬。我可以在Maven構建中運行所有測試,並且運行時沒有錯誤(並且傳遞!)。但是,如果我右鍵單擊一個測試函數,並選擇「Run As - > JUnit Test」,我會得到一個異常java.lang.NoSuchMethodError: org.mockito.Mockito.doAnswer(Lorg/mockito/stubbing/Answer;)Lorg/mockito/stubbing/Stubber;
。當然,如果我查看源代碼,就會看到「缺失」方法,就像我說的那樣,測試是從命令行編譯並運行的。爲什麼我的基於Mockito的單元測試無法在Eclipse中運行?
最好我能想到的是,如果Eclipse試圖通過爲JUnit插件提供過時的Mockito工件(我在Maven依賴項中使用1.8.5)來「幫助」我,類似於Maven插件如何堅持使用古怪的Maven運行時版本來完成某些任務。
這是問題嗎?還有別的嗎?我能解決這個問題嗎?
ETA:顯然這可能與known issue有關。這很可能是因爲我的類路徑中有多個Mockito版本(謝謝,Maven: - /)。我似乎有我的房子 - Eclipse現在可以運行測試 - 但不幸的是,該bug已經咬我的哈德森。我必須找出如何從classpath中刪除舊的JAR。
良好的呼籲多個版本;我被這個經常燒燬了,我不知道爲什麼它不是我檢查的第一件事情。我現在正在重建;將接受如果這修復它:D – Coderer 2010-12-16 23:26:05