2010-09-30 5 views
3

У нас есть огромная база кода, где методы с слишком большим количеством локальных переменных возвращают 226 методов. Я не хочу, чтобы эта огромная таблица была выгружена в xml-выход, чтобы загромождать ее, и мне хотелось бы, если бы это было возможно, 10 лучших, но то, что я действительно хочу, - это счет, поэтому мы можем делать тренды и резюме. Есть ли чистый/эффективный/масштабируемый не-хакерский способ сделать это?NDepend Count, Average и т. Д. Отчетность ... агрегаты. Возможное? чистая работа вокруг?

Я предполагаю, что я мог бы использовать исполняемую задачу вместо задачи ndepend (так что слияние не было автоматическим), и беспорядок не сливается. Затем вручную оперируйте эти файлы, чтобы получить резюме, но я хотел бы знать, есть ли более короткий путь?

+0

Что не так с созданием XML, а затем с помощью XSLT для его фильтрации? –

+0

Я бы подумал, что это будет серьезная проблема с производительностью, 450+ сборок, выход msbuild, выход ndepend, в конечном итоге fxcop и ncover выводят все в одном XML-файле. – Maslow

ответ

1

Как насчет defining a base line to only take account of new flaws?

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

Trending может быть легко достигнуто с кодом запросов и правил над LINQ (CQLinq), как: Avoid making complex methods even more complex (Source CC)

// <Name>Avoid making complex methods even more complex (Source CC)</Name> 
// To visualize changes in code, right-click a matched method and select: 
// - Compare older and newer versions of source file 
// - Compare older and newer versions disassembled with Reflector 

warnif count > 0 
from m in JustMyCode.Methods where 
!m.IsAbstract && 
    m.IsPresentInBothBuilds() && 
    m.CodeWasChanged() 

let oldCC = m.OlderVersion().CyclomaticComplexity 
where oldCC > 6 && m.CyclomaticComplexity > oldCC 

select new { m, 
    oldCC , 
    newCC = m.CyclomaticComplexity , 
    oldLoc = m.OlderVersion().NbLinesOfCode, 
    newLoc = m.NbLinesOfCode, 
} 

или Avoid transforming an immutable type into a mutable one.

 Смежные вопросы

  • Нет связанных вопросов^_^