code-coverage - .net核心项目代码覆盖率Visual Studio 2017

标签 code-coverage visual-studio-2017 xunit vs-unit-testing-framework

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

我的解决方案也有一些单元测试项目,我想查看当前的Code覆盖范围。

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

问题1 :你们是否也遇到我同样的问题?有什么解决办法吗?我还需要在VSTS中设置构建定义以报告代码覆盖率。

enter image description here

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

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

最佳答案

即使使用“固定”版本,我仍然有问题(只能看到测试项目的代码覆盖率,而不是我正在测试的实际项目)。要解决此问题,我从测试项目中删除了<DebugType>Full</DebugType>

因此,作为总结:

  • 将包Microsoft.CodeCoverage(1.0.3)添加到测试项目中。
  • 在.csproj文件的上添加<DebugType>Full</DebugType>标签
    我们要查看代码覆盖率值
    的项目(在vstest github link<PropertyGroup>内)。
  • 运行单元测试。
  • 在“测试资源管理器”上,选择通过的单元测试,右键单击->“分析所选测试的代码覆盖率”。
  • 您应该看到程序集的代码覆盖率。

  • 我的设置(最小设置?)
  • xunit(2.3.1)
  • xunit.runner.visualstudio(2.3.1)
  • Microsoft.NET.Test.Sdk(15.3.0)
  • Microsoft.CodeCoverage(1.0.3)
  • Visual Studio企业版2017(15.4.1)
  • 关于code-coverage - .net核心项目代码覆盖率Visual Studio 2017,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43011072/

    相关文章:

    c - 获取 Windows 资源管理器上下文菜单应用程序的覆盖范围!

    java - 如何识别哪些代码行参与了Java程序的特定执行?

    python - 让 Python 的 coverage.py 收集导入它的模块的覆盖率?

    c# - VS2017 不显示建议并且无法导航到插入符号下的符号

    java - 如何将测试覆盖率添加到私有(private)构造函数?

    tfs - 连接到 TFS 时 Visual Studio 2017 中的 "No repositories available"

    c# - 为什么我不能使用 Global.asax.cs 中 Models 文件夹中的类?

    c# - 如何确定构建程序集的 MSBuild 版本?

    c# - 如何设置 Selenium 和 ChromeDriver 以 headless 模式运行

    tdd - BDD 有返回吗?