Просмотр тенденций в метриках кода с помощью NDepend - PullRequest
3 голосов
/ 10 февраля 2012

У меня есть версия NDepend для серверов сборки, и я автоматизировал генерацию отчетов NDepend.Таким образом, каждую ночь сборка делает свое дело и генерируются отчеты / XML NDepend.Теперь я хочу отслеживать некоторые метрики как функцию времени.

Так, например, было бы неплохо иметь график определенного типа или пространства имен, скажем, афферентной связи, на yось со временем на оси х.Я знаю, что могу сравнить две сборки NDepend и иметь разность кода и метрики, но я хочу сравнить одну и ту же метрику или метрику с N-сборками, чтобы увидеть текущие тенденции.

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

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

Заранее спасибо.

1 Ответ

6 голосов
/ 12 февраля 2012

С помощью NDepend вы можете написать Запрос кода через LINQ (CQLinq) , чтобы соответствовать эволюции любых метрик кода.Например, вы можете начать с запроса:

from t in JustMyCode.Types
where t.IsPresentInBothBuilds() &&
      t.CodeWasChanged()
let tOld = t.OlderVersion()

let newLoC = t.NbLinesOfCode  
let oldLoC = tOld.NbLinesOfCode
let newCC = t.CyclomaticComplexity
let oldCC = tOld.CyclomaticComplexity
let newCov = t.PercentageCoverage
let oldCov = tOld.PercentageCoverage
where newLoC > oldLoC || newCC > oldCC || newCov < oldCov
select new { t, newLoC, oldLoC, newCC, oldCC, newCov, oldCov }

... и получить мгновенный результат в Visual Studio.Такое правило интегрируется в ваш процесс сборки CI TFS , а также может быть показано в HTML + javascript report .

Code metric evolution match

Для ограничения изменения метрики кода предусмотрено несколько правил кода по умолчанию:

...