Я пытаюсь собрать хорошую статистику покрытия кода для моего приложения на C #, но я хотел бы игнорировать сгенерированные классы SubSonic, поскольку нет никакого смысла в сборе статистики покрытия кода для этих функций.
Iотредактировал файл ActiveRecord.tt, включив атрибут [ExcludeFromCodeCoverage] в каждый метод и свойство, и это удалило большинство ненужных результатов в моем окне покрытия кода.Однако, несмотря на наличие атрибута исключения покрытия кода, лямбда-выражения в свойствах помечаются как непокрытые.Как пример:
[ExcludeFromCodeCoverage]
int GetValue
{
get
{
this.SomeMethod(); // this is excluded
return this.Find(x => x.Value == this._Value); // this.Find is excluded
// but x => x.Value == ...
// is not.
}
}
Это происходит только в свойствах.Лямбда-выражения игнорируются в методах, как и ожидалось.
Теперь, для меня это довольно раздражает, но не обязательно фатально, так как я могу просто игнорировать эти выражения при просмотре списка покрытия кода.Однако наш клиент потребовал, чтобы уровень покрытия нашего кода был выше 95%.Маловероятно, что я смогу заставить их понять, что эта статистика в значительной степени бесполезна.
Я мог бы автоматически создавать модульные тесты вместе с файлом ActiveRecord.tt, но это вряд ли идеально.
Спасибо за ваше время.