Я работаю над asp.net core 2.2 web api project.У меня есть отдельная библиотека классов с именем MyProject.Db , которую я создал в контексте базы данных из существующей базы данных.MyProjDbContext
содержит автоматически сгенерированный метод, который называется
protected override void OnModelCreating(ModelBuilder modelBuilder)
. После некоторого кодирования мне пришлось провести некоторый анализ кода, поэтому в сообществе Visual Studio 2019 я запускал метрики кода из меню Анализировать -> РассчитатьМетрики кода -> Для MyProject.Db.
Результаты метрики кода показали очень низкий индекс ремонтопригодности для конкретного метода и снизили общий процент.
Поскольку это автоматически сгенерированный код, я хочу исключить его из анализа.
Я прочитал некоторую документацию Microsoft относительно настраиваемой конфигурации, например здесь и здесь но они относятся в основном к юнит-тестам, и они мне мало чем помогли.
Я также попробовал 2 представленных решения здесь , но ни одно из них не помогло.
- Я попытался использовать атрибут
[ExcludeFromCodeCoverage]
, но он не дал никакого эффекта. - Я создал собственный атрибут
[ExcludeFromCodeCoverage]
и добавил его в файл runsettings.Но я запутался в том, где я буду использовать его через юнит-тесты.
РЕДАКТИРОВАТЬ
В соответствии с этим здесь ,даже если это кажется старым, если мы добавим атрибут GeneratedCode в класс / метод, это исключит код из метрик кода.Таким образом, формат выглядит следующим образом:
[GeneratedCode("Microsoft.EntityFrameworkCore.Tools", "2.2.4")]
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
//Scaffolded models here
}
Как оказалось, это еще одна неудачная попытка.Метод не был опущен в метриках кода.
Есть ли способ исключить метод / класс из библиотеки классов для этого типа анализа кода?