Есть ли способ сравнить или сделать дельту результатов анализа кода VS 2010, метрик и покрытия кода?

Я начал работать с функциями измерения и анализа кода VS2010; то есть анализ кода, метрики кода и покрытие кода. Я подробно изучил, как запускать эти инструменты (используя VS и автоматизировать через командную строку), а также просмотрел результаты.

Мне было интересно, есть ли способ сравнить результаты, чтобы лучше понять «прогресс», то есть то, как качество кода постоянно улучшается? Например, я хотел бы сравнить статистику метрик кода (файл результатов xml) из предыдущей сборки и сравнить ее с текущей сборкой.

Есть ли для этого инструмент, о котором я не знаю? Прямо сейчас мы думаем о том, чтобы сохранять результаты в Excel и делать сравнения и графики по мере продвижения.

Ценю, если у кого есть мысли.

Спасибо


person Lalman    schedule 01.03.2012    source источник


Ответы (2)


Единственный известный мне специализированный инструмент сравнения — это тот, который я создал несколько лет назад и который доступен по адресу http://finlogikfxcopstats.codeplex.com/. Я больше не несу ответственности за его обслуживание и не уверен, что он был обновлен для FxCop 10.0. Тем не менее, его исходный код доступен, поэтому вы можете настроить его, если вам нужно...

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

person Nicole Calinoiu    schedule 01.03.2012
comment
Спасибо, Николь. Я проверю ваш код. Я также еще не смотрел на отслеживание результатов и посмотрю. - person Lalman; 03.03.2012

Отказ от ответственности Я являюсь разработчиком цитируемого инструмента. С помощью инструмента NDepend вы может написать Code Query over 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.

Соответствие эволюции метрики кода

person Patrick from NDepend team    schedule 24.05.2012
comment
Вы, конечно, не пытаетесь скрывать свою принадлежность к NDepend, и вы публикуете много очень полезных ответов в своей области знаний. Тем не менее, подобные сообщения кажутся слишком коммерческими для этого сайта. Я не помечаю это как спам или что-то в этом роде, а просто дружеское напоминание быть осторожным, когда ваши ответы начинают использовать маркетинговую лексику. - person Andrew Barber; 01.06.2012
comment
Эндрю, я перефразировал сообщение, чтобы отбросить любые сомнения относительно моей принадлежности к NDepend и сообщить более подробные сведения. Так как Shanks написал: Есть ли для этого инструмент, о котором я не знаю? и NDepend точно делает то, о чем он просит, в чистом виде, надеюсь, мой ответ актуален. - person Patrick from NDepend team; 02.06.2012
comment
Это все хорошо и хорошо. Но когда большое количество ваших постов читается как маркетинговый раздел вашего сайта, возникает проблема. Просто к вашему сведению. Как я уже сказал, вы также делаете несколько хороших постов поддержки, поэтому я склонен просто дать вам дружеское предупреждение :) - person Andrew Barber; 04.06.2012