CQL使找到方法很容易 CodeWaschanged 但是我还需要比较指标 - 我想找到修改的代码,看看它是否有所改进。

我正在评估 ndection依赖 对于混合代码库。两者都给我留下了深刻的印象,尤其是cppdepdepder似乎如何应对我们的遗产和现代C ++。

如果我能够弄清楚如何做到这一点,那么我可以在CQL中完成我需要的一切,否则必须在外部组合报告之类的事情。因此,我感谢有关自动化和比较CQL的报告生成的提示。显然,我会更快乐地使用CQL在视觉依赖或视觉依赖性内部,因此我可以在公表示视图中看到查询的结果。结果的实时探索是 大事 使用这些工具,与其他工具相比。

关于CodeWaschanged和其他条款的评论 IsinolderBuild强迫CQL与较旧的建筑物相抵触 这表明您不能在修订中进行查询工作。

我想要的那种查询就像是想象语法:

SELECT METHODS WHERE CodeWasChanged and MethodCe > 10

跨版本的概括

SELECT METHODS WHERE CodeWasChanged and MethodCe > 10 and BaseMethodCe < 10

或者可能

SELECT METHODS WHERE CodeWasChanged and MethodCe > 10 and Older(MethodCe < 10)
有帮助吗?

解决方案

安迪,与 cqlinq(代码查询和通过LINQ规则) 在代码指标中看到趋势是可能的,希望可以易于实现。例如,请参见默认代码规则 避免使复杂的方法更加复杂(源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,
}

我们建议在默认组中浏览相关的默认代码规则: 代码质量回归

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top