快速產生 .net core 測試程式碼覆蓋率報表
昨天,幫客戶介紹 .net core 的單元測試(Unit Test)開發。 其實,單元測試(Unit Test)是個非常簡單的概念,近代開發工具本身也都進化的超級方便,輕輕鬆鬆的就可以建立出單元測試專案的架構。 單元測試(Unit Test)看起來一點都不難。 這話只對了一半,單元測試難的地方並非撰寫單元測試程式碼本身(甚至,單元測試程式碼本來就應該盡可能的簡單,簡單到不該出現邏輯),難的地方是為了實施單元測試前的程式碼重構(如何增加程式碼的可測試性),以及如何在企業內真的推廣和實作。(因為上至主管下至開發人員,總有成千上百個看來非常合理的理由,解釋為何自己現階段無法導入單元測試) 不過,這些困難的問題,我們留到 課程 裡面再討論。 我們今天先來看一個簡單的,如何在 .net core 產生測試程式碼覆蓋率的報表。 其實,只有三個動作,第一個,請安裝 .net tool: dotnet tool install -g dotnet-reportgenerator-globaltool 然後 透過 dotnet CLI 跑一次單元測試進行資料蒐集,記得請在 .sln 或 .csproj 所在的目錄下執行: #收集資訊 dotnet test --collect:"XPlat Code Coverage" 請注意上面的 --collect:“XPlat Code Coverage” 參數,是為了蒐集單元測試涵蓋率資訊,執行完畢之後,會出現底下畫面,請特別注意XML檔案所在位置: 因為我們下一個指令需要該位置資訊。 最後,請執行: reportgenerator -reports:"路徑\coverage.cobertura.xml" -targetdir:"report" -reporttypes:Html 嘩啦,單元測試涵蓋率報表出來了(位於report資料夾中,還是HTML格式的),就這樣: 簡單吧~