如何排除被单覆盖率报告中的方法?

Don*_*n P 5 unit-testing xunit reportgenerator coverlet

如何使用coverlet和从代码覆盖率报告中排除方法reportgenerator。排除整个命名空间可以.runsettings按预期工作,但使用[ExcludeFromCodeCoverage]属性会排除整个文件,而不仅仅是目标方法。有关我在 中尝试过的内容,请参阅下面的评论.runsettings

相关.runsettings线路:

  <DataCollectionRunSettings>
    <DataCollectors>
      <DataCollector>
        <Configuration>
          <Format>lcov</Format>
          <Include>[*]*</Include>
          <Exclude> 
             <!-- excluded namespaces -->
          </Exclude>
          <!-- excludes entire file from coverage --> 
          <ExcludeByAttribute>Obsolete, GeneratedCodeAttribute, CompilerGeneratedAttribute,ExcludeFromCodeCoverage</ExcludeByAttribute>
          <!-- included & reported as uncovered --> 
          <ExcludeByAttribute> ExcludeFromCodeCoverageAttribute </ExcludeByAttribute>
          <SingleHit>true</SingleHit>
          <UseSourceLink>true</UseSourceLink>
          <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
          <!-- included and reported as uncovered -->
          <CodeCoverage>
            <Attributes>
              <Exclude>
                <Attribute> ^System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute$</Attribute>
              </Exclude>
            </Attributes>
          </CodeCoverage>
        </Configuration>
      </DataCollector>
    </DataCollectors>
  </DataCollectionRunSettings>
Run Code Online (Sandbox Code Playgroud)

更新:这似乎是最近解决的问题coverlet。更新解决了该问题。https://github.com/coverlet-coverage/coverlet/issues/809

Yev*_*hin 9

只需应用于[ExcludeFromCodeCoverage]方法而不是类。