У нас есть тип с именем OldThing
, который мы хотим обесценить с течением времени.Как я могу получить NDepend для анализа отказа, если новые вызовы используются для устаревшего типа?
Нам нужен запрос/правило NDepend, в котором указывается from this point on, don't add any more calls to 'OldThing'
.
В настоящее время мы используем NDepend и имеем базовую сборку для проверки таких вещей, как don't make large methods even larger
.
Итак, мы хотели бы использовать NDepend для отслеживания любых дополнительных звонков, сделанных в OldThing
. У меня есть следующий запрос CQL:
// <Name>Don't use OldThing going forwards</Name>
warnif count > 0
let containsMethods = Methods.WithFullNameIn(
"MyNamespace.OldType.get_Foo()",
"MyNamespace.OldType.get_Bar()")
from m in Application.Methods.UsingAny(containsMethods)
where m.IsUsedRecently()
select m
... проблема в том, что это не работает; он не находит никаких звонков.
Есть ли лучший способ сделать это в NDepend (возможно, используя trend metrics
)?
спасибо @Patrick. Это теперь сообщает об использовании в измененных файлах, но я бы хотел, чтобы он сообщал об «дополнительных» обычаях. Например, коллега открыл файл и изменил его (но не добавил никаких * дополнительных * вызовов к этим методам), но теперь сборка разбита на 5 способов использования этих методов. –
NDepend может определить, вызывает ли метод другой метод, но не указывает, что метод вызывает N раз другой метод. В этом контексте вы хотите узнать, какой новый или реорганизованный метод вызывает устаревший метод? (и не назвал его базовым) –
Было бы неплохо, если бы была функция, которая могла бы сравнивать «счет» от одной сборки к другой. Затем я мог бы добавить новый запрос «тренд» для каждой сборки, а затем посмотреть, увеличился ли счет. –