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

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

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

coverlet

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

coverlet目前支持兩種方式操做:json

  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 .app

默認報告的格式是json.工具

報告格式

coverlet還支持其它幾種格式, 能夠經過CoverletOutputFormat參數指定.測試

目前支持這幾種格式:ui

  • json (default)
  • lcov
  • opencover
  • cobertura

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

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

其它參數

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/

 

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

相關文章
相關標籤/搜索