團隊負責人的問題之一是團隊中的人員(有時甚至包括我自己)經常創建沒有任何測試功能的JUnit測試。JUnit報告顯示測試功能,而不是覆蓋
這很容易做到,因爲開發人員使用他們的JUnit測試作爲啓動他們正在編碼的應用程序的一部分,然後有意或無意地在沒有任何斷言測試或模擬驗證的情況下進行檢查。
然後後來忘記測試是不完整的,但他們通過併產生了很好的代碼覆蓋率。運行應用程序並通過它提供數據將會創建來自Cobertura或Jacoco的高代碼覆蓋率統計數據,但除了它沒有被炸燬的能力以外,沒有任何東西被測試 - 而且我甚至已經看到用大型try-catch塊考試。
是否有一個報表工具在那裏,這將測試試驗,這樣我就不需要經常檢查測試代碼?
我一時興奮地發現Jester,它通過更改測試中的代碼(例如if子句)並重新運行它來查看它是否打破測試來測試測試。
然而,這是不是你可以建立一個CI服務器上運行 - 它需要在命令行設置,沒有顯示出它的圖形用戶界面,只打印結果到GUI不能運行,也需要年齡跑步。
你能提供一個具體的例子,你正在試圖抓住什麼?也就是說,測試的代碼覆蓋率很高,但測試質量很差的例子。 – EJK
你不能添加一個檢查代碼審查覈對清單,檢查單元測試的斷言和實際測試的東西?我認爲自動化解決方案對於這個問題是複雜的,但是在這個過程中一個簡單的額外步驟可能足以學習和防止這種情況。 –