Unit testing 如何排除封面覆盖报告中的方法?

Unit testing 如何排除封面覆盖报告中的方法?,unit-testing,xunit,reportgenerator,coverlet,Unit Testing,Xunit,Reportgenerator,Coverlet,如何使用coverlet和reportgenerator从代码覆盖率报告中排除方法。在中排除整个名称空间。runsettings按预期工作,但使用[ExcludeFromCodeCoverage]属性排除整个文件,而不仅仅是目标方法。有关我在.runsettings中尝试的内容,请参见下面的注释 相关.runsettings行: <DataCollectionRunSettings> <DataCollectors> <DataCollect

如何使用
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>

lcov
[*]*
过时,GeneratedCodeAttribute,CompilerGeneratedAttribute,ExcludeFromCodeOverage
ExcludeFromCodeCoverageAttribute
符合事实的
符合事实的
符合事实的

只需在方法上而不是类上应用
[ExcludeFromCodeOverage]

您使用哪个库或工具来收集覆盖率?@PavelAnikhouski似乎是
coverlet的问题
我需要排除测试项目程序集?如何做this@KarthicG我不建议你那样做,但是。。。如果您确实需要,您应该将
/p:IncludeTestAssembly=false
参数传递给
dotnet test
命令。您能详细说明为什么不建议这样做吗?我认为这个建议一定有原因。@321X当然,在这种情况下,您将无法快速观察到测试程序集中的所有测试都已执行。