Ndepend - исключать сборку одним способом, но не другим

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

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

Проблема в том, что теперь, поскольку это было мое единственное внешнее приложение в проекте, NDepend жалуется на вещи в моем бизнес-уровне, такие как классы без экземпляров, поскольку нет кода, который создает их экземпляры, кроме как в тестовом приложении, которое я исключил. Я знаю, что на данный момент их можно безопасно игнорировать, поскольку они в конечном итоге будут созданы НАСТОЯЩИМ интерфейсным приложением, но я действительно очень хочу, чтобы все желтые треугольники исчезли, прежде чем я буду продолжать разработку этого приложения.

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

Если нет, какие еще идеи?


person JoeMjr2    schedule 16.10.2013    source источник


Ответы (1)


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

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

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

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

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

person Patrick from NDepend team    schedule 17.10.2013
comment
Я пробовал это следующим образом: // ‹Name›Discard Test App‹/Name› notmycode Application.Assemblies.WithNameIn(ECIMWinTester) Это дает мне следующую ошибку: Ln 2 Col 60 Запрос CQLinq должен завершаться вызовом неиндексированных версий of Select() SelectMany() Join() GroupJoin() Count() LongCount() Take() Min() Max() Sum() Average() - person JoeMjr2; 18.10.2013