使用NDepend查看代码指标趋势

3
我有一个适用于构建服务器的NDepend版本,并已自动化生成NDepend报告。因此,每晚构建都会进行,NDepend报告/XML文件也会生成。现在我想要做的是跟踪一些指标随时间变化的情况。
例如,可能很好地将特定类型或命名空间的入侵耦合度作为y轴,时间作为x轴绘制成图表。我知道我可以比较两个NDepend构建并具有代码和指标差异,但我要做的是比较同一单个指标或多个指标在N个构建中的变化,以查看持续趋势。
我有点假设目前没有工具可以实现这一点,我必须自己开发,但如果已经存在这样的工具,我肯定希望在投资时间之前了解它。那么,NDepend本身是否支持类似于此的功能,或者是否存在某种实用程序可供使用?
除了NDepend之外,我也愿意接受其他技术的建议来完成此任务,但由于已经投资并熟悉NDepend的工作方式,我更倾向于使用NDepend。
提前感谢您的帮助。
1个回答

6

使用 NDepend,您可以编写一个 基于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报告中显示。

Code metric evolution match

提供了几个默认的代码规则以限制超过代码度量趋势:


感谢您的反馈。我可能会编写自己的解析器和显示为单独的程序集,这样当API推出时,我就可以替换成使用它的东西。 - Erik Dietrich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接