如何让我的CI构建停止测量我们未在解决方案中的项目中编写的代码(程序集)的覆盖范围?
我们已针对TFS构建定义中的解决方案的CI构建启用了代码覆盖率。当我们在Visual Studio中本地运行代码覆盖时,我们正确地报告了只是解决方案中的程序集的覆盖范围。但是,当我们签入并且CI构建运行时,代码覆盖率报告项目引用的其他第三方程序集中的覆盖范围(本地和CI构建)。
由于第三方程序集具有比我们的解决方案更多的代码块,因此在CI构建上测量的代码覆盖率显着偏差。 这些程序集不是.net框架程序集,而是从NuGet程序包中提取的其他程序集。
答案 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