CQL在Nddection和CPPD中,以查看跨修订的指标变化
题
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,
}
我们建议在默认组中浏览相关的默认代码规则: 代码质量回归
不隶属于 StackOverflow