如何在VSTS(CI)中为.NET标准库(2.0)项目启用代码覆盖率

Deb*_*osh 5 .net unit-testing azure-devops azure-pipelines-build-task azure-pipelines

请帮助我-如何为VSTS(CI)中的.NET标准库项目(2.0)启用/显示代码覆盖结果。通过dotnet测试任务(.NET Core 2.0预览版)启用了测试结果,并能够查看通过的测试用例。下一步,我添加了“发布结果”任务,但是在构建过程中显示以下警告- 找不到与_temp * / .trx 匹配的测试结果文件。 甚至我也修改了.csproj文件并添加了<DebugType>Full</DebugType>。

使用Visual Studio 2017 Professional(版本-15.5.2)项目-.NET标准库(2.0)单元测试-MSTest(在Visual Studio中内置)

我需要在VSTS的“构建定义”中添加/修改哪些任务/应该如何执行任务,以便可以看到针对单元测试的代码覆盖率。

代码覆盖率的任务- 测试程序集

其他选择

现在,我可以看到代码覆盖率(不确定是否显示正确的代码覆盖率),但是任务-测试程序集***。test * .dll失败,并出现以下错误- 代码覆盖率结果

  • ......... $(BuildConfiguration)\ netcoreapp2.0 \ Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.dll中没有可用的测试。确保测试项目具有包“ Microsoft.NET.Test.Sdk”的nuget参考,并且框架版本设置合适,然后重试。

    • ...... $(BuildConfiguration)\ netcoreapp2.0 \ Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.dll中没有可用的测试。确保测试项目具有包“ Microsoft.NET.Test.Sdk”的nuget参考,并且框架版本设置合适,然后重试。

谢谢。

问候,Deb

sta*_*SFT 4

首先,确保您可以通过 Visual Studio 获取代码覆盖率结果。据我所知,需要企业版(您可以使用Hosted VS 2017代理)。

.Net Core单元测试项目的代码覆盖率:

  1. 添加<DebugType>Full</DebugType>到 PreopertyGroup

样本:

<PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>

    <IsPackable>false</IsPackable>
    <DebugType>Full</DebugType>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
  1. 安装Microsoft.CodeCoverage 包来测试项目

其次,您可以通过 Visual Studio Test 任务运行测试:(

vstest.console.exe 的路径:C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\TestPlatform\vstest.console.exe

检查Code coverage enabled选项

其他控制台选项/framework:".NETCoreApp,Version=v2.0":)

在此输入图像描述