Dot-Net-Core
.Net Core 2.0 中的程式碼覆蓋率
如何在 .Net Core 2.0 中生成程式碼覆蓋率?
我嘗試了以下方法:
"TestPlatform\vstest.console.exe" --collect:"Code Coverage"但我收到了這個錯誤資訊:
Data collector 'Code Coverage' message: Cannot find CodeCoverage.exe.我嘗試了 dotCover 最新版本 2017.2,我能夠在本地機器上獲得覆蓋率,但是當在 TFS 建構中執行相同的版本時,不會生成覆蓋率資訊。
我不確定 TFS 中的 NetCore 測試任務何時會獲得對程式碼覆蓋率的支持。
如何在 TFS 中發布 DotCover 的結果,以使用 DotCover 命令行為 .Net Core 生成 Coverage?
VSTest任務無法執行 .NET 核心測試,因為它使用的是測試平台版本 1。要執行 .NET 核心測試,我們建議使用帶有測試命令的**.NET 核心任務(預覽版) 。**
但是,尚不支持程式碼覆蓋率和其他數據收集,不支持代理。
我們正在修復此問題作為此 https://github.com/Microsoft/vsts-agent/pull/1149/files的一部分,一旦修復消失並發布新代理,將更新執行緒。執行緒 https://github.com/microsoft/vstest/issues/579#issuecomment-324401462
Coverlet是一個跨平台的程式碼覆蓋,可作為 NuGet 包使用。
只需將其添加到您的測試項目中:
dotnet add package coverlet.msbuild
dotnet test並使用命令作為參數完全執行它:dotnet test /p:CollectCoverage=true支持的格式:
- json(預設)
- lcov
- 開蓋
- 屋頂
我在這裡做了更詳細的實現:.Net Core Unit Test and Code Coverage with Visual Studio Code