部分类的Visual Studio 2010代码覆盖率

时间:2011-12-27 17:12:52

标签: visual-studio-2010 unit-testing mstest code-coverage

我正在使用Visual Stdio 2010及其测试和代码覆盖功能,我有一堆生成的代码,我不希望将其包含在代码覆盖率结果中。这些是作为部分类生成的。

我在几个地方读过(例如:How to ignore generated code from code coverage data)我如何让代码覆盖工具忽略整个类或使用属性的特定成员。所以我修改了生成器以在它生成的所有类中包含[ExcludeFromCodeCoverage]属性,但是这也阻止了我在部分中编写的代码也被跟踪以用于代码覆盖。

如何进行设置,以便我在代码覆盖率结果中包含部分中手动编写的代码,但生成的代码不是?我现在看到的唯一选择是挖掘生成器(一个冗长,丑陋的T4模板)并在属性/方法级别而不是在类级别添加[ExcludeFromCodeCoverage]属性。还有另外一种方法吗?我没有看到像[IncludeFromCodeCoverage]这样的东西,我可以添加到我手工编写的部分属性/方法中,以包含那些而忽略其余自动生成的类。

1 个答案:

答案 0 :(得分:0)

ExcludeFromCodeCoverage和其他How to ignore generated code from code coverage data节目中,您并不是唯一一个请求此条目的人。

我已经看到用其他一些(例如ncoverpartcover)覆盖工具完成的另一种方法是对结果进行后处理,即如果XML使用xslt转换xml来删除覆盖数据与生成的部分相关,然后生成覆盖率报告。

您可以应用此方法或类似的内容,因为您可以访问XML中的覆盖率数据。

OpenCover有一个文件过滤器,允许您排除文件中与过滤器匹配的所有方法,仅为此场景创建,因为生成的文件的名称往往遵循已知模式,它还允许多个过滤