1. 程式人生 > >使用 coverlet 查看.NET Core應用的測試覆蓋率

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

針對 我只 dir rdo col 使用命令 str nbsp dex

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

coverlet

我找到了 coverlet: https://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/

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

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