2012-09-10 98 views
5

我試圖從Eclipse運行JUnit測試,但同時運行這些測試,我得到ClassNotFound異常從Eclipse中運行JUnit測試提供了ClassNotFound的錯誤

完整的堆棧跟蹤如下:

java.lang.NoClassDefFoundError: of Caused by: java.lang.ClassNotFoundException: of at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) Exception in thread "main"

我已搜查谷歌爲此,並已發現,幾個傢伙已經面臨這個問題,但他們似乎都沒有解決我的問題。這也許可能是由於在平臺

我的開發平臺是區別如下

OS: Windows XP 
Eclipse JUNO 
JUnit4 
Maven2 

平均同時,如果我運行使用它運行精絕的Maven這個項目。

對我來說最奇怪的部分是ClassNotFound引發異常的類的名稱。班級名稱爲of

這是什麼讓我完全失望。

另外,我上面列出的是什麼堆棧跟蹤,這就是我得到錯誤時所得到的全部內容。

我一直在這個問題停留了2天現在,任何幫助將不勝感激。

+2

是否做一個項目 - >清潔解決這個問題? –

+0

這是什麼類?的?? –

+0

「.ClassNotFoundException:?? ?? ?? ??」不是類名稱,它只是沒有正確報告錯誤的細節。 Maven通常花費一些時間在運行任何東西之前設置一個項目 - 檢查它添加到項目類路徑中的東西,這是您在eclipse classpath中沒有的東西。如果**你**沒有在你的main方法中使用動態類加載器,我會懷疑它是無法找到的JUnit類。 –

回答

11

我想在這裏提到的一切,其他職位。一些人遞上的解決方案是:從Maven的

  1. 更改爲測試
  2. 輸出文件夾創建,將運行項目中的自定義生成器測試編譯
  3. 更高的移動Maven依賴於在項目構建路徑中訂購和導出列表

還有很多很多,但我發現的工作如下:關閉開發環境。從我的本地Maven倉庫中刪除項目使用的罐子。打開IDE。建立該項目。運行測試。

經過幾個小時,我的頭撞着我的鍵盤和下面的建議解決方案,這一個工作!如果這不起作用,您可以嘗試搜索我上面列出的解決方案。

+0

在發佈問題後的4到5天,突然測試開始爲我工作,但我從來沒有意識到,這是由於這些步驟,我跟着其他一些原因,它開始工作。 –

+0

謝謝@gffny,第3步適用於我。 –

+0

可能只是項目 - >清潔... –

0

嘗試在Eclipse中的角度切換到JUnit和再次運行測試

+0

這不應該真正發揮作用? – Ren

1

我知道這個問題已經回答了,但我仍然會在這裏分享我的解決方案,

  1. 確保「的src/test/java下」已被設置爲「目標/測試 - 的輸出文件夾類「,這在其他許多帖子中都有說過,所以我不再重複。

  2. 如果仍然無法正常工作,則在編譯單元測試類時很可能出現錯誤。去'窗口' - >打開'錯誤日誌'視圖,你應該能夠看到錯誤信息的細節。

對於我而言,以前下載依賴罐子不知何故損壞,由於網絡問題,所以才刪除本地倉庫的jar和使用「行家」 - >「更新配置」來重新下載。

然後一切正常!

7

在Eclipse中的項目名稱並選擇右鍵單擊「Maven的 - >更新項目」往往會解決這個問題。

+1

不知道爲什麼這是downvoted,因爲這對我有用,所以我會upvote它。在「更新Maven項目」對話框中,我還確保了「清理項目」中的「強制更新快照/發佈」。一旦Maven更新完成,我的測試運行。另請注意:我正在使用SpringSource ToolSuite版本3.6.2 – Phil

0

儘管所有的答案和我看到的其他帖子。我會給我的工作內容摘要:

這大概是這個項目的配置不適合在同一個工作區等項目。 (如何解決這可能是另一個問題)

左右,接近該工作區,啓動一個乾淨的工作區僅此項目。

0

面臨同樣的問題。這個簡單的步驟爲我解決了它。

  1. 從項目的構建路徑中刪除JUnit並再次添加它。

  2. 如果設置爲自動構建,您的工作將被重新建造。如果未設置爲自動構建然後構建您的項目。你的問題應該解決。

1

通常,當我們建立我們檢查「跳過測試」,在「運行配置標籤」,而不是取消選中「跳過測試」和建設項目的junits應該正常工作。這個解決方案爲我工作。 Run configuration tab for building project

0

您應該添加使用例如班(春季啓動):在Eclipse上項目

@RunWith(SpringRunner.class) 
@SpringBootTest(classes = {DataPoint.class}) 
public class DataPointTest { 

    @Test 
    public void TestBuilder() { 
     DataPoint.Builder builder = new DataPoint.Builder(); 

     DataPoint dataPoint = builder.withCount(4).withFirst(1).build(); 

     assert dataPoint.getCount() == 4 && dataPoint.getFirst() == 1; 
    } 

} 
相關問題