我的項目中有一個JUnit測試類,它是逐步更新的 - 我每隔幾周添加一次測試,有時修改測試代碼。令人驚訝的是,當我使用eclipse JUnit Runner 4運行測試類時,它運行我的舊代碼(更新之前)而不是新代碼。我可以更改代碼,添加或刪除測試,但它仍然運行舊代碼。單元測試類在eclipse中運行舊版本
我試圖找出問題並運行我剛剛編寫的單個測試,並且在沒有任何堆棧跟蹤的情況下得到臭名昭着的「Unrooted tests」錯誤,以便讓我知道問題所在。
我做了一些研究,並根據這裏的幾個其他線程,很多人都遇到過這個問題,關於JUnit的3 \ JUnit 4中的兼容性,但在這裏,這是不是這樣的 - 我標註了所有的考試與@Test
,我不擴展TestCase
類。
清理/建立所有的eclipse項目並沒有幫助。 但是,這個問題在我乾淨安裝我的項目時會自行工作,但這需要太多時間。 此外,重命名類(在eclipse中的Alt + Shift + R)獲取新代碼立即運行,但將其重命名回其原始(和有效)名稱,獲取舊代碼再次運行(WTF?)
幫助,將不勝感激, 10x
如果它運行的是舊代碼,它**有**舊代碼,無論是在源代碼或編譯。你是否有舊的代碼,甚至可能是在正好在類路徑中的.jar中? – Harald
我想我在某個地方,但假設eclipse已經編譯它(它做了),是不是日食亞軍應該運行它被指示運行的代碼? – KidCrippler
是否有可能以Eclipse的配置方式讓測試運行器使用'target'下的編譯類,但Eclipse編譯器正在輸出到不同的文件夾(默認情況下是'bin')?這可以解釋爲什麼Maven構建解決了這個問題。 – sisyphus