是否可以从代码覆盖率统计中排除实体框架自动生成的代码?

时间:2011-01-07 17:05:55

标签: unit-testing entity-framework .net-4.0 code-generation code-coverage

我在资源中看到了[DebuggerNonUserCode][ExcludeFromCodeCoverage]属性,并且在覆盖率统计信息中看到了关于驱逐代码的other SO questions,并且想知道是否可以自动将此属性添加到类中在使用.NET 4.0的实体框架生成的代码中。

它还需要是类级别还是可能是diagram.Designer.cs级别,需要一个属性才能生成该图表生成的所有代码?

2 个答案:

答案 0 :(得分:6)

是的,这是可能的。 You can use a custom T4 template to control the codegen.这比你想象的要容易。

答案 1 :(得分:2)

由于部分类(实体框架创建)合并属性,如果属性是模板中的类级别,也会排除其他分部类中的扩展功能,它必须在方法中应用水平。

我发现这样做的最好方法是使用T4(根据@Craig Stuntz's answer的建议):

  • 包含:using System.Diagnostics.CodeAnalysis;位于文件顶部

然后通过搜索:

[ExcludeFromCodeCoverage]应用于getter,setter和Factory方法
  • #>get
  • #>set
  • Template_FactoryMethodComment

并将它们放在适当的位置。

使用Tangible's T4 editor Extension for VS可以轻松实现这一点。

这是我的第一次尝试,它似乎有效,“你的milage可能会有所不同”,所以完成测试运行以确保一切正常工作。