這兩天在給項目補單元測試,dalao們要求要看一下測試覆蓋率html
翻了一波官方test命令覆蓋率卻是有支持了,然而某個更新日誌裏面寫着git
【「Support for Linux and Mac will be considered separately in a subsequent effort.」】github
吐血ing。。。json
8102年都要過去了,微軟同窗你是不有點過度啊。ide
而後又翻了一堆資料以後發現,GitHub有dalao本身搞了個coverlet來支持測試覆蓋率。工具
開源大法拯救世界啊!!!單元測試
star一個再說。測試
首先安裝一下coverlet.ui
dotnet tool install --global coverlet.console
或者和我同樣懶的話,直接在項目裏面引用 "coverlet.msbuild" 這個包也行.spa
<PackageReference Include="coverlet.msbuild" Version="2.5.0" />
引用以後,執行dotnet test 的時候加多三個參數
dotnet test /p:CollectCoverage=true /p:CoverletOutput='./results/' /p:CoverletOutputFormat=opencover
其餘參數本身看一下文檔說明就好.
執行以後大概會看到這些信息.
PS:可憐的個位數覆蓋率....
這個時候Test項目裏面的results 文件夾裏面就有一個coverage.opencover.xml 文件了.
打開這個文件大概長這個樣.
大機率這不是人看的東西.
而後另外一個工具又出來了.
https://github.com/danielpalme/ReportGenerator
這個工具能夠講上面這些不是人看的XML轉換成HTML輸出.
美滋滋啊美滋滋啊.
他們竟然還有一個配置指導的頁面ReportGenerator/usage
真良心!!!
我這邊簡單起見,直接安裝 dotnet tool 全局工具算了.
dotnet tool install --global dotnet-reportgenerator-globaltool
安裝好了以後,直接在命令行裏面使用 reportgenerator 生成對應的測試報告便可.我這邊的命令大概是:
reportgenerator '-reports:UnitTests/results/*.xml' '-targetdir:UnitTests/results'
打開UnitTests/results 下面的index.htm就能看到對應的測試報告了.
全文完.
明年見!