如何让TFS构建不测量第三方程序集的覆盖范围

时间:2014-08-28 14:23:27

标签: unit-testing tfs code-coverage

如何让我的CI构建停止测量我们未在解决方案中的项目中编写的代码(程序集)的覆盖范围?

我们已针对TFS构建定义中的解决方案的CI构建启用了代码覆盖率。当我们在Visual Studio中本地运行代码覆盖时,我们正确地报告了只是解决方案中的程序集的覆盖范围。但是,当我们签入并且CI构建运行时,代码覆盖率报告项目引用的其他第三方程序集中的覆盖范围(本地和CI构建)。

由于第三方程序集具有比我们的解决方案更多的代码块,因此在CI构建上测量的代码覆盖率显着偏差。 这些程序集不是.net框架程序集,而是从NuGet程序包中提取的其他程序集。

1 个答案:

答案 0 :(得分:4)

如果您使用运行设置文件,则可以从代码覆盖率中排除某些文件。

文件的内部将如下所示

<ModulePaths>
   <Include>
     <ModulePath>.*\.dll$</ModulePath>
    </Include>
    <Exclude>
       <ModulePath>.*CPPUnitTestFramework.*</ModulePath>
       <ModulePath>.*test.*</ModulePath>
       <ModulePath>.*tests.*</ModulePath>
    </Exclude>
 </ModulePaths>

以上设置将从coverage中排除所有测试dll,您只需将dll名称片段添加到exclude节点即可忽略代码覆盖中的dll。

所以Some3rdParty.dll将被排除

<ModulePath>.*Some3rdParty.*</ModulePath>

有关详细信息以及runsettings文件的实际完整内容,请访问http://msdn.microsoft.com/en-gb/library/jj635153.aspx

或更好的解释http://blogs.msdn.com/b/sudhakan/archive/2012/05/11/customizing-code-coverage-in-visual-studio-11.aspx