Как исключить метод в отчете о покрытии?

Как я могу исключить метод из отчетов о покрытии кода, используя 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>

ОБНОВЛЕНИЕ: похоже, недавно была решена проблема с coverlet. Обновление устранило проблему. https://github.com/coverlet-coverage/coverlet/issues/809

1 ответ

Просто подай заявку [ExcludeFromCodeCoverage] по методу вместо класса.

Другие вопросы по тегам