.net核心项目代码覆盖视觉工作室2017

Hun*_*Cao 22 code-coverage xunit vs-unit-testing-framework visual-studio-2017

我正在使用Visual Studio Enterprise 2017来开发我的.net核心项目.

我的解决方案还有一些单元测试项目,我想查看我目前的代码覆盖率.

当我单击测试 - >分析代码覆盖率 - >所有测试时.我的所有单元测试都在运行,但在代码覆盖率结果中,它只报告了我的单元测试项目的代码覆盖率,这对我没有任何意义.

问题1:你们和我一起遇到同样的问题吗?对此有何解决方案?我还需要在VSTS中设置构建定义以报告代码覆盖率.

在此输入图像描述

问题2:当我右键单击调试我的单元测试时.它执行我的所有单元测试.这是VS2017中的错误吗?

Update1:​​我找到了这个主题:https://github.com/Microsoft/vstest/issues/597

JDC*_*JDC 37

即使使用"固定"版本,我也遇到了问题(只能看到测试项目的代码覆盖率,而不是我正在测试的实际项目).为了解决这个问题,我<DebugType>Full</DebugType>从测试项目中删除了它.

所以,作为总结:

  1. 将Microsoft.CodeCoverage(1.0.3)包添加到您的测试项目中.

  2. 在我们想要查看代码覆盖率值的项目<DebugType>Full</DebugType>上添加.csproj文件的标记(内部<PropertyGroup>vstest github链接中所述).

  3. 运行单元测试.
  4. 在"测试资源管理器"上选择已通过的单元测试,右键单击 - >"分析所选测试的代码覆盖率".
  5. 您应该看到程序集的代码覆盖率.

我的设置(最小设置?)

  • xunit(2.3.1)
  • xunit.runner.visualstudio(2.3.1)
  • Microsoft.NET.Test.Sdk(15.3.0)
  • Microsoft.CodeCoverage(1.0.3)
  • Visual Studio Enterprise 2017(15.4.1)

  • 哦,我看了你提到的github链接,看到它现在需要Visual Studio ENTERPRISE.非常感谢Micro $ oft. (10认同)

Hun*_*ach 8

你可以试试Jetbrains的dotCover.https://www.jetbrains.com/dotcover/features/

dotCover是一个.NET单元测试和代码覆盖工具,可以在Visual Studio中正常工作,帮助您了解单元测试覆盖代码的程度,提供可视化代码覆盖的好方法,并且可以进行持续集成.dotCover计算并报告面向.NET Framework,Silverlight和.NET Core的应用程序中的语句级代码覆盖率.

它适用于.NET Core并可以显示代码覆盖率.

支持多个单元测试框架,即MSTest,NUnit,xUnit(全部开箱即用)和MSpec(通过插件).

在此输入图像描述