从代码覆盖率中删除 c__DisplayClass

Remove c__DisplayClass from code coverage

我的代码覆盖率分析中出现 c__DisplayClass 个文件,这些文件似乎是从闭包自动生成的代码(参见 this link)。

我的问题是,如何从代码覆盖结果中删除这个自动生成的代码?

经过一些研究,我发现您可以使用 .runsettings 文件 (documentation)。

您可以像这样在此文件中自定义您的代码覆盖率结果:

<CodeCoverage>
  <ModulePaths>
    <Exclude></Exclude>
  </ModulePaths>
  <Functions>
    <Exclude>
      <Function>.*c__DisplayClass.*</Function>
    </Exclude>
  </Functions>
</CodeCoverage>

这给了我想要的结果。结果中排除了所有自动生成的 c__DisplayClass 函数。

为了补充 Anthony 的出色回答,我有很多自动生成的垃圾,可以使用以下 .runsettings 文件巧妙地隐藏它们:

<CodeCoverage>
    <ModulePaths>
        <Exclude></Exclude>
    </ModulePaths>
    <Functions>
        <Exclude>
            <Function>.*&lt;*&gt;.*</Function>
        </Exclude>
    </Functions>
</CodeCoverage>

注意 &lt;&gt; 是三角括号 <> 所以这应该(根据我的经验)覆盖覆盖结果中的所有自动生成的代码.