Dot-Net-Core

.Net Core 2.0 中的程式碼覆蓋率

  • July 11, 2019

如何在 .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

源碼連結:VSTest 任務無法在 .NET Core 2.0 測試項目中執行測試

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

引用自:https://stackoverflow.com/questions/46057586