.Net Core 2.0中的代码覆盖率

时间:2017-09-05 14:34:59

标签: .net-core code-coverage tfs2017 dotcover

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

我尝试了以下内容:

"TestPlatform\vstest.console.exe" --collect:"Code Coverage"

但我收到此错误消息:

Data collector 'Code Coverage' message: Cannot find CodeCoverage.exe.

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

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

如何在TFS中发布DotCover的结果,使用DotCover Commandline生成.Net Core的覆盖范围?

3 个答案:

答案 0 :(得分:3)

Coverlet是一个跨平台代码覆盖,可用作NuGet包。

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

dotnet add package coverlet.msbuild

并使用dotnet test命令将其作为参数:

一起运行
dotnet test /p:CollectCoverage=true

支持的格式:

  • json(默认)
  • LCOV
  • opencover
  • 的Cobertura

我在这里做了更详细的实施:.Net Core Unit Test and Code Coverage with Visual Studio Code

答案 1 :(得分:2)

VSTest 任务无法运行.NET核心测试,因为它使用的是测试平台版本1.要运行.NET核心测试,我们建议使用 .NET核心任务(预览)使用测试命令。

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

  

我们正在解决此问题   https://github.com/Microsoft/vsts-agent/pull/1149/files将更新   线程一旦修复就消失了,新的代理就会被释放。线   https://github.com/microsoft/vstest/issues/579#issuecomment-324401462

     

来源链接:VSTest task fails to execute tests in .NET Core 2.0 test project

答案 2 :(得分:0)

自问这个问题以来已经很长时间了,但我认为下面的答案将有助于对.NET Core 2上的项目执行测试并使用DotCover工具生成覆盖率报告。

  1. 下载并安装Jetbrains dotcover控制台设置
  2. 在命令行上执行如下命令,该命令将识别解决方案中的测试项目并生成HTML格式的覆盖率报告。您还可以生成不同的格式,如JSON,NDependXML或DetailedXML。
  3.   

    dotcover analyze / TargetExecutable:" C:\ Program   文件\ DOTNET \ dotnet.exe" / TargetArguments:"测试   的 Path_To_Your_Solution_File "   /Output:report.html / ReportType:HTML

    您还可以在.csproj文件上运行并生成测试覆盖率。