2
當我在NetBeans中右鍵單擊項目並選擇「測試」時,某些單元測試未運行。如果我右鍵單擊包含單元測試的.java文件並選擇測試文件,則單元測試會運行。此外,我在哈德遜CI中也有這個項目,並且那些相同的單元測試不能運行。爲什麼某些JUnit測試不能在NetBeans和/或Hudson中執行?
當我在NetBeans中右鍵單擊項目並選擇「測試」時,某些單元測試未運行。如果我右鍵單擊包含單元測試的.java文件並選擇測試文件,則單元測試會運行。此外,我在哈德遜CI中也有這個項目,並且那些相同的單元測試不能運行。爲什麼某些JUnit測試不能在NetBeans和/或Hudson中執行?
只有在帶有後綴Test的項目中以類名命名的類中的測試纔會被執行。例如,單元測試類FooTests中的測試永遠不會運行(後綴不完全是Test)。單元測試類FooTest中的測試只有在項目有一個名爲Foo的類時纔會運行。
這將是很好知道爲什麼它是這個樣子...
編輯:我只是在我的初步診斷部分正確。我找到this forum post,它解釋了它是一個NetBeans/JUnit問題。運行測試的NetBeans Ant目標僅在與該掩碼匹配的所有文件中查找測試:* Test.java。您可以在nbproject文件夾的build-impl.xml中的-do-test-run目標中看到這一點。因此你只需要確保所有的單元測試類都以後綴Test結尾,你應該沒問題。
對我來說似乎是因爲你的測試應該是針對每個班級的。測試的JUnit方法是每個應用程序類都有相應的類來測試它。 這是你看到的行爲。 – MadMurf 2009-11-18 03:51:04
經過進一步的研究,每個班級都有相應的測試班並不重要。在答案中查看我的編輯以獲得解釋。 – 2009-11-18 18:52:22