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



我们希望在源代码管理(git(中选择时间点来生成趋势度量

我们正在对nDepend进行试用,以确定它对我们15年以上的大型代码库的价值。

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

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

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

这是可以(容易(做的事情吗?

我已经找到了一个解决方案:

  1. 更新NDepend设置以将NDepend项目附加到.soo文件
  2. 更新NDepend设置以记录趋势度量";总是">
  3. 签出初始变更集:gitcheckout{changesethash}
  4. 构建解决方案
  5. 将新的NDepend项目附加到当前解决方案
  6. 为新NDepend项目运行分析
  7. 将NDepend项目文件和NDepend Out文件夹移动到解决方案的.vs文件夹
  8. 编辑NDepend项目文件,从"调整.sln文件的路径"至">

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

  1. 签出下一个变更集:gitcheckout{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();

要聚合趋势指标,您可以使用NDependent.trend命名空间,并从与趋势相关的OSS强大工具中获得灵感:Dated log trend values

最新更新