2015-12-10 142 views
1

目標是提供完全相同測試方法的不同變體(就像參數化測試一樣)。問題是必要的測試運行的實際數量取決於並隨時發現。擴展JUnit 4.11:Unrooted測試

最初的想法是創建測試的子元素(子)(使用測試方法的描述對象addChild)。

運行代碼時Eclipse View顯示所有發現和執行的測試都置於「未根檢測」下。使用description.getTestClass()方法描述測試方法的Description實例。

有沒有人可以解釋發生了什麼,如果可能的話給出解決方案?

我擴展了BlockJUnit4ClassRunner。還通過使用Description.addChild增加了一個孩子。

+0

你看過http://stackoverflow.com/questions/120889/unrooted-tests? – maksimov

+0

是的。這個問題是不同的。這個問題可能與動態擴展測試用例套件有關。它接合了一個幾乎沒有記錄的邊緣案例。我將進行模擬測試運行(只是報告使用不同數據結構的東西)並查看它是否正確顯示。也許我會得到更多的內心。我希望避免這種情況。 –

回答

1

eclipse的測試運行器是一個名爲RemoteTestRunner的自定義實現。從源代碼中我瞭解到,偵聽器機制不負責創建測試用例樹,而是實際的Runner結構(getDescription)和實際的子節點。但是,再次不是描述的孩子,而是每個Runner實例的孩子。

總而言之,所有代碼都比閱讀和理解更難。

So Unrooted testcases只是偵聽器進程報告的測試,但無法正確匹配實際的Runner結構。