.Net Core 2.0中的代码覆盖率

sam*_*esh 9 code-coverage dotcover .net-core tfs2017

如何在.Net Core 2.0中生成代码覆盖?

我尝试了以下方法:

"TestPlatform\vstest.console.exe" --collect:"Code Coverage"
Run Code Online (Sandbox Code Playgroud)

但我收到此错误消息:

Data collector 'Code Coverage' message: Cannot find CodeCoverage.exe.
Run Code Online (Sandbox Code Playgroud)

我尝试了dotCover最新版2017.2,我能够在本地机器上获得覆盖,但是当在TFS Build中运行相同时,不会生成覆盖信息.

我不确定TFS中的NetCore Test任务何时会获得对代码覆盖的支持.

如何在TFS中发布DotCover的结果,使用DotCover Commandline为.Net Core生成Coverage?

equ*_*man 6

Coverlet是作为NuGet软件包提供的跨平台代码覆盖范围。

只需将其添加到您的测试项目中:

dotnet add package coverlet.msbuild
Run Code Online (Sandbox Code Playgroud)

并以dotnet test命令作为参数一起运行它:

dotnet test /p:CollectCoverage=true
Run Code Online (Sandbox Code Playgroud)

支持的格式:

  • json(预设)
  • lcov
  • 开盖
  • 科贝图拉

我在这里对此进行了更详细的实现:.Net核心单元测试和Visual Studio Code的代码覆盖率


Pat*_*SFT 2

VSTest任务无法运行 .NET Core 测试,因为它使用测试平台版本 1。要运行 .NET Core 测试,我们建议将.NET core 任务(预览版)与 test 命令结合使用。

但是,尚不支持代码覆盖率和其他数据收集,也没有代理支持。

我们正在修复此问题,作为此 https://github.com/Microsoft/vsts-agent/pull/1149/files的一部分,一旦修复消失并发布新代理,我们将更新线程。线程 https://github.com/microsoft/vstest/issues/579#issuecomment-324401462

源链接:VSTest 任务无法在 .NET Core 2.0 测试项目中执行测试