2017-09-05 192 views
4

如何在.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 Build中运行它时,不会生成覆盖信息。

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

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

+0

@slartidan这也与SonarQube有关,因为当前在TFS中的MS Build Task不能分析Net Core。我正在使用SonarCLI进行分析 – samdinesh

+0

感谢您的澄清! – slartidan

回答

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

+0

我知道vsts的工作,我想知道如何发布覆盖范围,因为DotCover使用TestWindow/vstestconsole.exe,而NetCore不使用它。 – samdinesh

0

它已经很长一段时间,因为这个问题被问,但我想我的回答如下,将有助于对.NET的Core 2执行测试的项目和使用DotCover工具生成覆盖率报告。

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

dotcover分析/ TargetExecutable: “C:\ PROGRAM 文件\ DOTNET \ dotnet.exe”/ TargetArguments: “测试 Path_To_Your_Solution_File” /Output:report.html/REPORTTYPE:HTML

您也可以通过.csproj文件运行并生成测试覆盖率。