Вопрос

Изредка я смотрю на какой-нибудь код, я ищу использование метода (используя Resharper) и обнаружил, что он называется только тестами. Так что это эффективно избыточно, и я могу удалить его и методы, которые это называют.

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

У меня есть полная версия Resharper, а также пробная версия NDEPend, но не обнаружила, как использовать любой из них, чтобы получить результат, который я хочу (не платя за него). Я подозреваю, что может быть возможно с полной версией NDEpend, но есть ли другие инструменты, о которых люди знают?

Если контекст помогает, решение и веб-сайт ASP.NET, большая часть функциональности которых обрабатывается службой WCF. Таким образом, единственным допустимым точкам входа в основную часть кода являются методами обслуживания. Испытания находятся в своих отдельные проекты.

Я начал щедрость, потому что я уверен, что кто-то еще должен был иметь и решить эту проблему раньше!

Это было полезно?

Решение

Вручную ищем с NDEPend должен работать с Dependency Matrix. Отказ Там вы можете увидеть, какие методы используются только узлыми узлами.

Я не уверен, что вы можете написать собственные запросы CQL с пробной версией. Но с версией Pro вы можете использовать такое запрос:

SELECT METHODS WHERE IsUsedBy "ASSEMBLY:NAME_OF_THE_UNIT_TEST_ASSEMBLY" 
AND !(IsUsedBy "ASSEMBLY:NAME_OF_ANOTHER_ASSEMBLY" OR IsUsedBy "ASSEMBLY:ANOTHER_NAME")

Для этого вам нужно создать проект NDEPend, который знает все ваши сборки.

Для NAME_OF_THE_UNIT_TEST_ASSEMBLY Вы должны вставить свой модульную тестовую сборку, а во второй части вы должны указать ваши сборки производства кода с помощью ISUMENY и отделены с или.

Другие советы

Нетехнический подход будет временно удалить ваш тестовый проект из вашего решения, затем использовать анализ кода Visual Studio Code (или FXCOP), чтобы найти любые методы, которые не вызываются никому другому.

Вы можете использовать NDEPEND с некоторыми пользовательскими запросами ... Это только что в верхней части моей головы, никогда не использовал его точно, но он должен работать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top