我们有一个庞大的代码库,其中仅具有太多局部变量的方法会返回 226 个方法。我不希望将这个巨大的表格转储到 xml 输出中以使其混乱,如果可能的话,我想要前 10 名,但我真正想要的是计数,以便我们可以进行趋势和执行摘要。有没有一种干净/高效/可扩展的非hacky方式来做到这一点?
我想我可以使用一个可执行任务,而不是 ndepend 任务(这样合并不是自动的)并且混乱不会被合并。然后手动对那些文件进行操作得到一个摘要,但我想知道是否有更短的路径?
我们有一个庞大的代码库,其中仅具有太多局部变量的方法会返回 226 个方法。我不希望将这个巨大的表格转储到 xml 输出中以使其混乱,如果可能的话,我想要前 10 名,但我真正想要的是计数,以便我们可以进行趋势和执行摘要。有没有一种干净/高效/可扩展的非hacky方式来做到这一点?
我想我可以使用一个可执行任务,而不是 ndepend 任务(这样合并不是自动的)并且混乱不会被合并。然后手动对那些文件进行操作得到一个摘要,但我想知道是否有更短的路径?
定义一个只考虑新缺陷的基线怎么样?
我真正想要的是计数,这样我们就可以做趋势和执行摘要
趋势可以通过 LINQ (CQLinq) 上的代码查询和规则轻松实现,例如:避免使复杂方法更加复杂(来源 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,
}