【问题标题】:Unable to use Visual Studio Code Coverage with Azure Functions无法将 Visual Studio 代码覆盖率与 Azure Functions 一起使用
【发布时间】:2018-03-25 07:27:01
【问题描述】:

我正在使用 Visual Studio 15.3.5 和 Microsoft.NET.Sdk.Functions 1.0.6。

我可以很好地运行测试,但是当我使用代码覆盖率分析测试时,不会分析包含 Azure Functions 的程序集。它未列在代码覆盖率程序集列表中。列出了其他程序集,仅省略了 Azure Functions 程序集。

有人搞定了吗?

【问题讨论】:

  • 您能否阐明“Azure Functions 程序集”的含义?您是指 Functions Runtime,还是您自己的包含您的函数的程序集?
  • 抱歉不清楚。我的意思是我自己的包含函数的程序集。
  • 我会问 VS Functions 专家。作为一项测试,如果您添加一个帮助程序库(因此是一个不同的程序集),它是否会包含在代码覆盖率结果中?
  • 一种理论是,新项目系统(Function 项目使用的)可能会破坏代码覆盖率。您尝试了哪种类型的类库项目?如果您选择 Class Library (.NET Standard) 而不是 Class Library (.NET Framework),它仍然有效吗?如果不是,那将进一步验证该理论。
  • 您如何看待代码覆盖率?您正在采取哪些步骤来查看此内容?

标签: visual-studio azure code-coverage azure-functions


【解决方案1】:

原因是对于新项目类型,默认的 <DebugType> 是可移植的,这意味着生成的 pdb 不会包含 CodeCoverage 所需的信息。

您可以通过以下方式进行更改:在您的 .csproj 中,将 <DebugType>full</DebugType> 添加到 <PropertyGroup>。例如你应该有:

<PropertyGroup>
  <TargetFramework>net461</TargetFramework>
  <DebugType>full</DebugType>
</PropertyGroup>

或者您可以从 VS 中更改:

  • 转到项目的属性
  • 转到构建选项卡,然后点击底部的“高级...”按钮
  • 有一个调试信息下拉菜单。将其设置为“完整”会使用必要的属性更新项目

【讨论】:

  • 是的,做到了。非常感谢!知道什么时候/是否会开箱即用地解决这个问题?
  • @Eric 不确定。我将与代码覆盖人员核实,因为他们可能有理由按照他们的方式设置默认值。
  • @Eric 看起来它最终会正常工作,但这可能在几个月内不会发生。现在,使用解决方法:)
猜你喜欢
  • 2017-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-16
  • 1970-01-01
  • 2013-12-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多