c# - 为代码覆盖关闭 Visual Studio 2010 中的 Lambda 表达式

标签 c# visual-studio visual-studio-2010 mstest code-coverage

在使用 Visual Studio 2010 查看代码覆盖率数据时,我在给定命名空间下看到以下输出:

SomeClass1
SomeClass2
SomeClass2.< >c__DisplayClass1
SomeClass2.< >c__DisplayClass19
SomeClass2.< >c__DisplayClass28
SomeClass3
SomeClass3.< >c__DisplayClass2F
etc

如果我展开其中包含“DisplayClass”的任何条目,我会看到它是一个包含 lambda 表达式的方法。由于 lambda 表达式太多,很难从代码覆盖率结果中获得有意义的数据。

有没有办法清理这份报告?

最佳答案

从 lambda 表达式生成的函数是您编写的代码的直接结果。由于编译器的扩展,他们可能会在报告中返回具有欺骗性的大量行,但是您想要测试他们的行为是否正确。因此,它们应该包含在覆盖率报告中。

我也同意以下评论:不应将代码覆盖率视为精确衡量标准。我认为它有一位有效数字。

说了这么多……我认为你最大的希望是 ExcludeFromCodeCoverage属性。它相当灵活,但通常应用于声明。我不清楚如何将它应用于 lambda。

关于c# - 为代码覆盖关闭 Visual Studio 2010 中的 Lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7879450/

相关文章:

c# - foreach文件夹中的文件,重命名并保存

sql - SSRS设计器中的数据集面板(报告数据)消失了

c# - 从 asp 访问属性 ID :Dropdown but display the attribute only c#

c# - 如何根据按钮单击向上或向下移动 datagridview 行

visual-studio - x64 和 x86 目录命名困惑

c# - 获取 "Tuple element name is inferred. Please use language version 7.1 or greater to access an element by its inferred name."

c# - 如何将 DataSource 设置为 DropDownList?

c++ - C++ 中的 HttpListener 类?

上传后 C# ASPX FTP 文件大小错误

c# - OpenFileDialog 默认路径