В. Net Core 3.1 как исключить авто свойства из покрытия кода? - PullRequest
0 голосов
/ 13 апреля 2020

Этот вопрос является современным реинкарнацией Исключить автоматические свойства из покрытия кода в Visual Studio 2015 Меня интересуют только VS 2019 и. Net Core 3.1.

Мой текущий CodeCoverage Файл .runsettings содержит следующий раздел:

<Attributes>
  <Exclude>
    <Attribute>^System\.Diagnostics\.DebuggerHiddenAttribute$</Attribute>
    <Attribute>^System\.Diagnostics\.DebuggerNonUserCodeAttribute$</Attribute>
    <Attribute>^System\.CodeDom\.Compiler\.GeneratedCodeAttribute$</Attribute>
    <Attribute>^System\.Runtime\.CompilerServices\.CompilerGeneratedAttribute$</Attribute>
    <Attribute>^System\.Diagnostics\.CodeAnalysis\.ExcludeFromCodeCoverageAttribute$</Attribute>
  </Exclude>
</Attributes>

Дело в том, что автоматическим свойствам присваивается атрибут * CompilerGenerated. Однако такой подход неверен, поскольку методы async также преобразуются компилятором в методы с таким же атрибутом. Таким образом, используя этот подход, мы теряем охват методов async. Не хорошо.

Итак, есть ли способ в покрытии кода VS, чтобы пропустить покрытие на автоматических свойствах, как мы можем сделать в OpenCover или DotCover?

...