Ndepend - исключить сборку в некоторых отношениях, но не в других

Я использую NDepend для анализа проекта C#, который я нахожусь в процессе разработки. У меня написана большая часть моей бизнес-логики и слоев доступа к данным, но сейчас единственное внешнее приложение, которое у меня есть, это "быстрое и грязное" тестовое приложение.

Итак, во-первых, у NDepend есть много проблем с моим тестовым приложением. Ничего серьезного, просто такие вещи, как слишком много методов, слишком длинные методы и т. Д. Поскольку это по сути одноразовое приложение, я не хотел тратить кучу времени на его рефакторинг, поэтому я удалил его из проекта NDepend.

Проблема в том, что теперь, так как это было мое единственное интерфейсное приложение в проекте, NDepend жалуется на такие вещи в моем бизнес-уровне, как необъявленные классы, поскольку нет кода, который их создает, за исключением тестового приложения, которое я исключил. Я знаю, что на данный момент их можно безопасно игнорировать, поскольку в конечном итоге они будут созданы в приложении REAL, но я действительно очень хочу, чтобы все желтые треугольники исчезли, прежде чем я приступлю к дальнейшей разработке этого приложения.

Есть ли способ заставить NDepend НЕ жаловаться на проблемы в конкретной сборке, но все же включить его, чтобы проходить запросы в ДРУГИХ сборках?

Если нет, то есть другие идеи?

1 ответ

Да, это возможно. Сначала снова обратитесь к сборке тестового приложения. Затем исключите их, добавив пользовательский запрос, который выглядит следующим образом:

// <Name>Discard test assemblies from JustmyCode</Name>
notmycode Application.Assemblies.WithNameIn("TestAsm1","TestAsm2"...)

Этот запрос может быть сохранен в группе по умолчанию Defining JustMyCode (не обязательно, но рекомендуется).

Затем вам нужно адаптировать правила кода, которые предупреждают о том, что тестовые сборки могут использовать грязные вещи. JustMyCode вместо Application (лайк from m in JustMyCode.Methods... вместо from m in Application.Methods...).

Документацию, связанную с notmycode/JustmyCode, можно найти здесь.

Другие вопросы по тегам