我已经看到[DebuggerNonUserCode]
和[ExcludeFromCodeCoverage]
属性在资源和other SO questions关于从覆盖率统计exlcuding代码,并想知道是否有可能自动将此属性添加到由实体框架使用.NET 4.0生成的代码中的类。是否可以从代码覆盖率统计中排除实体框架自动生成的代码?
它也需要是级别级别,或者它可能在diagram.Designer.cs
级别,需要该图表生成的所有代码的一个属性?
我已经看到[DebuggerNonUserCode]
和[ExcludeFromCodeCoverage]
属性在资源和other SO questions关于从覆盖率统计exlcuding代码,并想知道是否有可能自动将此属性添加到由实体框架使用.NET 4.0生成的代码中的类。是否可以从代码覆盖率统计中排除实体框架自动生成的代码?
它也需要是级别级别,或者它可能在diagram.Designer.cs
级别,需要该图表生成的所有代码的一个属性?
是的,这是可能的。 You can use a custom T4 template to control the codegen.它比你想象的要容易。
由于部分类(Entity Framework创建的)合并属性,如果该属性是模板中的类级别,则其他部分类中的扩展功能也将被排除,它必须应用于方法级别。
我发现这是使用T4(如@Craig Stuntz's answer推荐)做的最好的方法:
using System.Diagnostics.CodeAnalysis;
在文件的顶部然后申请[ExcludeFromCodeCoverage]
通过搜索寻找吸气剂,固定器和工厂方法:
#>get
#>set
Template_FactoryMethodComment
并将它们放置在适当的位置。
使用Tangible's T4 editor Extension for VS使这变得容易很多。
这是我第一次尝试,它似乎工作,“你的米兰可能会有所不同”,所以完成一个测试运行,以确保一切工作如有必要。
需要考虑的是部分类(实体框架创建时)合并属性,因此如果要包含其他分部类中的扩展功能,则它必须是方法级别。 – StuperUser 2011-01-07 17:39:28