[英]Turning off Lamba Expressions in Visual Studio 2010 for 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对我来说并不清楚。
您可以使用DebuggerNonUserCode属性标记该类。
我不知道有什么方法可以排除特定的方法模式,编译器正在将你的lambda表达式转换为你注意到的方法(例如:SomeClass3。<> c__DisplayClass2F)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.