Visual Studio 2010 Покрытие кода на частичных классах - PullRequest
1 голос
/ 27 декабря 2011

Я использую Visual Stdio 2010 и его функции тестирования и покрытия кода, и у меня есть куча сгенерированного кода, который я не хочу включать в результаты покрытия кода.Они генерируются как частичные классы.

Я читал в нескольких местах (пример: Как игнорировать сгенерированный код из данных покрытия кода ), как я могу сделать так, чтобы инструменты покрытия кода игнорировали весь класс или определенные члены, используя атрибуты,Поэтому я изменил генератор так, чтобы он включал атрибут [ExcludeFromCodeCoverage] во все классы, которые он генерирует, но это препятствует отслеживанию кода, который я пишу в партиалах, для покрытия кода.

Как установитьтакие вещи, что код, который я вручную пишу в партиалах , включены в результаты покрытия кода, но сгенерированный код - нет?Единственная опция, которую я вижу сейчас, - это копаться в генераторе (длинный, уродливый шаблон T4) и добавлять атрибут [ExcludeFromCodeCoverage] на уровне свойства / метода, а не на уровне класса.Есть ли другой способ?Я не видел ничего подобного [IncludeFromCodeCoverage], которое я мог бы добавить к своей горстке свойств / методов, написанных от руки в партиалах, чтобы включить их, игнорируя при этом оставшуюся часть автоматически сгенерированного класса.

1 Ответ

0 голосов
/ 28 декабря 2011

Вы не одиноки в запросе этого, поскольку эта запись в ExcludeFromCodeCoverage и других Как игнорировать сгенерированный код из данных покрытия кода показывает.

Другой способ, которым я видел это с некоторыми другими (например, ncover , partcover ) инструментами покрытия, - это постобработка результатов, т. Е. Если XML использует xslt, преобразуйте xml в удалите данные покрытия, связанные с созданными частями, а затем сгенерируйте отчет покрытия.

Возможно, вы сможете применить этот подход или что-то подобное, так как похоже, что вы можете получить доступ к данным покрытия в XML .

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

...