使用 coverlet 查看.NET Core應用的測試覆蓋率


代碼覆蓋(Code coverage)是軟件測試中的一種度量,描述程式中源代碼被測試的比例和程度,所得比例稱為代碼覆蓋率。

Visual Studio 2017的企業版可以直接查看測試的代碼覆蓋率, 而由於我只能用得起Visual Studio Community和VS Code所以不得不尋找其它的免費辦法來查看測試覆蓋率.

coverlet

我找到了 coverlethttps://github.com/tonerdo/coverlet, 它是一個針對.NET Core的跨平台代碼覆蓋率的庫

coverlet目前支持兩種方式操作:

  1. 作為全局工具使用命令:  dotnet tool install --global coverlet.console

     安裝后, 就可以使用coverlet命令了, 查看幫助: coverlet --help, 這種我就不介紹了, 可以查看官方文檔.

  2. 在測試項目通過Nuget或dotnet cli添加該庫: dotnet add package coverlet.msbuild. 這種方式下, 當它被啟用后, 它會集成到dotnet test 這個命令架構里, 在測試運行后自動生成覆蓋率報告.

啟用coverlet

很簡單, 在測試項目下執行測試命令, 並加上后邊的啟用參數即可: dotnet test /p:CollectCoverage=true .

默認報告的格式是json.

報告格式

coverlet還支持其它幾種格式, 可以通過CoverletOutputFormat參數指定.

目前支持這幾種格式:

  • json (default)
  • lcov
  • opencover
  • cobertura

例如想要改用opencover格式: 那么: dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=opencover 這樣寫即可.

其生成的報告文件默認名是:

其它參數

coverlet還有一些其它參數, 使用都很簡單, 請查看官方文檔吧: https://github.com/tonerdo/coverlet#msbuild

 

查看報告

coverlet可以生成報告, 但是都是那些json, xml等數據格式, 通過命令行窗口也只能看見總覽的數據. 想要查看用戶能看明白的詳細報告需要使用一些工具, 例如ReportGenerator或SonarCloud.

ReportGenerator

ReportGenerator在本地就可以使用, 它支持opencover格式等, 在測試項目安裝: dotnet add package ReportGenerator --version 4.0.0-alpha12

安裝后按照說明操作即可: 

在我電腦上我使用的命令如下: dotnet C:\Users\solen\.nuget\packages\reportgenerator\4.0.0-alpha12\tools\netcoreapp2.0\ReportGenerator.dll -reports:.\coverage.opencover.xml -targetdir:F:\Reports 

 

然后到輸出目錄, 打開index.htm即可:

里面還可以點擊進行一些操作:

 

SonarCloud

它是一個雲服務, 但是需要安裝java環境, 我嫌麻煩就不介紹了. 可自行到官網了解: https://sonarcloud.io/

 

這個簡介寫完了...............


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM