2012-02-28 58 views

回答

2

RunNotifier由執行測試的類調用。它調用每個RunListener進行測試(可以有多個)。如果您正在實施自己的Runner,則可能需要實施自己的RunNotifier,但一般情況下您不需要。它是Runner,它調用RunNotifier,後者又調用每個RunListener

如果您正在實施自己的亞軍,請看JUnitCore,它幾乎可以滿足您的任何需求。然後對於每次測試失敗,您都可以調用RunNotifier。如果您從JUnitCore繼承,那麼大多數方法已經存在。

如果您只是想了解測試進度,請使用RunListener

+0

感謝您的回覆!我遇到的問題是,JUnitCore無法停止測試(pleaseStop())。所以我想實現一個叫RunNotifier的Runner來阻止Testrun。但是,我再次無法將RunListener添加到RunNotifier(addListener等僅用於內部使用)或Runner中。所以我的問題是,我可以像自定義RunListener一樣處理自定義RunNotifier,只是覆蓋它的函數,然後在測試失敗,成功等時自動調用它們。 – ctekk 2012-02-29 09:30:18

+2

不,您不能簡單地替換RunNotifier。如果您查看JUnitCore的源代碼(https://github.com/KentBeck/junit/blob/master/src/main/java/org/junit/runner/JUnitCore.java),則可以看到RunNotifier不是'不可替換。要使用@RunWith或類似的,你必須實現你自己的亞軍。如果你想停止測試,這是一個特定的問題,我會問更詳細的解釋問題的另一個問題。 – 2012-02-29 09:37:32

+0

說實話,我已經做到了:http://stackoverflow.com/questions/9312021/junitcore-stopping沒有結果。這也將有助於如果我知道如何將RunListener添加到自定義的Runner? – ctekk 2012-02-29 09:39:26