3

我有一个用于构建服务器的 NDepend 版本,并自动生成了 NDepend 报告。因此,每天晚上构建都会完成它的工作并生成 NDepend 报告/XML。我现在想做的是跟踪一些指标作为时间的函数。

因此,例如,在 y 轴上有一个特定类型或命名空间的图,比如传入耦合,在 x 轴上是时间。我知道我可以比较两个 NDepend 构建并具有代码和指标差异,但我想要做的是比较相同的单个指标或 N 个构建的指标以查看持续趋势。

我有点假设目前没有一种工具可以做到这一点,我必须自己推出,但如果有一个工具,我肯定很想在投入时间之前听到它。那么,NDepend 本身是否支持这样的东西,或者是否有某种我可以使用的已经存在的实用程序?

除了 NDepend 之外,我也愿意接受其他可以实现这一目标的技术的建议,尽管我对 NDepend 有强烈的偏好,因为我已经对它进行了投资并且熟悉它的工作原理。

提前致谢。

4

1 回答 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 报告中。

代码度量演化匹配

提供了几个默认代码规则来限制代码度量趋势:

于 2012-02-12T03:41:44.100 回答