使用源代码管理历史记录和nDepend创建趋势

问题描述

我们想在源代码管理(git)中选择时间点以生成趋势指标。

我们正在通过nDepend的试验来确定其在我们15年以上的大型代码库中的价值。

到目前为止采取的步骤是:

  1. 签出给定的变更集
  2. 构建/分析
  3. 转到1,直到所有选定的变更集都已分析

我们看到的问题是,每次检出代码时,它都是一个全新的开始,包括nDepend配置。结果,我们有了一系列完全独立的分析集,没有趋势。

这是可以(轻松)完成的事情吗?

解决方法

我已经解决了一个问题:

  1. 更新NDepend设置以将NDepend项目附加到.suo文件
  2. 更新NDepend设置以使趋势指标“始终”记录下来
  3. 签出初始变更集:git checkout {changesethash}
  4. 构建解决方案
  5. 将新的NDepend项目附加到当前解决方案
  6. 为新的NDepend项目运行分析
  7. 将NDepend项目文件和NDependOut文件夹移至解决方案的.vs文件夹
  8. 编辑NDepend项目文件,从“。”调整.sln文件的路径。到“ ..”

这时,对要捕获其分析的每个变更集重复以下操作:

  1. 签出下一个变更集:git checkout {changesethash}
  2. 构建解决方案
  3. 运行NDepend分析

希望我什么都没错过。

,

希望您可以使用NDepend.API自动执行大多数步骤。您无需在自动化过程中将NDepend项目附加到sln,只需使用方法SetIDEFile()来引用NDepend项目中的解决方案即可:

var ndependServicesProvider = new NDependServicesProvider();
var projectManager = ndependServicesProvider.ProjectManager;
project.CodeToAnalyze.SetIDEFiles(new [] { new 
   IDEFile("C:\File.sln".ToAbsoluteFilePath()","-test") } );
IAnalysisResult analysisResult = project.RunAnalysis();

要汇总趋势指标,可以使用NDepend.Trend命名空间并从trend related OSS power tools中获取启发:日期日志趋势值