如何在.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 :(得分:3)
Coverlet是一个跨平台代码覆盖,可用作NuGet包。
只需将其添加到测试项目中:
dotnet add package coverlet.msbuild
并使用dotnet test
命令将其作为参数:
dotnet test /p:CollectCoverage=true
支持的格式:
我在这里做了更详细的实施:.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工具生成覆盖率报告。
dotcover analyze / TargetExecutable:" C:\ Program 文件\ DOTNET \ dotnet.exe" / TargetArguments:"测试 的 Path_To_Your_Solution_File 强>" /Output:report.html / ReportType:HTML
您还可以在.csproj文件上运行并生成测试覆盖率。