【问题标题】:Remove c__DisplayClass from code coverage从代码覆盖中删除 c__DisplayClass
【发布时间】:2015-07-22 16:00:02
【问题描述】:

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

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

【问题讨论】:

    标签: c# visual-studio unit-testing code-coverage


    【解决方案1】:

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

    您可以在此文件中自定义代码覆盖率结果,如下所示:

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

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

    【讨论】:

    • 在通过命令提示符运行代码覆盖时有什么方法可以做到这一点?
    【解决方案2】:

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

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

    请注意,&amp;lt;&amp;gt; 是三角括号 &lt;&gt;,因此(根据我的经验)这应该涵盖覆盖结果中所有自动生成的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 2016-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多