从OpenCover coverage报告中删除.Designer.cs文件

时间:2013-06-03 21:02:25

标签: white opencover

我使用White框架针对我的应用程序用户界面编写测试。然后我使用OpenCover运行它们并使用ReportGen创建测试覆盖率报告。

我对结果的唯一投诉是,在生成有关MyForm类的覆盖范围的报告时,我的报告将MyForm.csMyForm.Designer.cs结合在一起。我的问题是,如果任何测试触及MyForm,那么.Designer.cs文件中的所有代码都会被添加到报告中(文件只包含一个自动生成的方法来创建所有控件)由构造函数触发)。该文件的内容只是样板文件,不包含任何有用的逻辑。但是,特别是在较薄的类中,此文件最终可能占到类中总代码的很大一部分。这导致类显示高覆盖率,尽管我的测试几乎没有触及任何可以从测试中获益的代码。 (例如,测试“显示我的表单”按钮创建“我的表单”对话框将导致MyForm.Designer.cs的所有内容被列为已涵盖但未实际测试MyForm类中的任何UI逻辑。)

OpenCover的-filter参数仅适用于类/命名空间级别;所以我不能使用它们只排除设计器文件(或其中的InitializeComponents函数)的内容。有没有其他方法可以过滤用于生成报告的代码以将其从输出中排除?

3 个答案:

答案 0 :(得分:10)

您可以使用-excludebyfile开关排除文件:

-excludebyfile:*\*Designer.cs

答案 1 :(得分:1)

OpenCover具有-excludefile:<filter>功能

答案 2 :(得分:1)

在VB.NET中,我让它排除了My。带有排除过滤器的名称空间:

-filter:"+[GoodStuff*]* -[*]*.My.*"