2022年6月18日 星期六

快速產生 .net core 測試程式碼覆蓋率報表

enter image description here

昨天,幫客戶介紹 .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檔案所在位置:
enter image description here

因為我們下一個指令需要該位置資訊。

最後,請執行:

reportgenerator  -reports:"路徑\coverage.cobertura.xml" -targetdir:"report" -reporttypes:Html

嘩啦,單元測試涵蓋率報表出來了(位於report資料夾中,還是HTML格式的),就這樣:
enter image description here

簡單吧~

熱門文章