Можно ли исключить автоматически сгенерированный код Entity Framework из статистики покрытия кода? - PullRequest
5 голосов
/ 07 января 2011

Я видел атрибуты [DebuggerNonUserCode] и [ExcludeFromCodeCoverage] в ресурсах и другие вопросы SO об исключении кода из статистики покрытия и хотел узнать, возможно ли автоматически добавить этот атрибут в классы в коде, сгенерированном Entity Framework с использованием .NET 4.0.

Также должен ли он быть на уровне класса или на уровне diagram.Designer.cs, требуя один атрибут для всего кода, сгенерированного этой диаграммой?

Ответы [ 2 ]

6 голосов
/ 07 января 2011
2 голосов
/ 10 января 2011

Поскольку частичные классы (которые создает Entity Framework) объединяют атрибуты, расширенная функциональность в других частичных классах также исключается, если атрибут уровня класса в шаблоне , его необходимо будет применять на уровне метода.

Лучший способ сделать это - использовать T4 (как рекомендовано в ответе @ Craig Stuntz ) для:

  • включая: using System.Diagnostics.CodeAnalysis; вверху файла

Затем примените [ExcludeFromCodeCoverage] к методам получения, установки и фабрики, выполнив поиск:

  • #>get
  • #>set
  • Template_FactoryMethodComment

и размещение их в соответствующем месте.

Это стало намного проще, используя Расширение Tangible Editor T4.для VS .

Это моя первая попытка, и кажется, что она работает, "ваш пробег может отличаться", поэтому выполните пробный запуск, чтобы убедиться, что все работает как нужно.

...