问题描述
我们正在通过nDepend的试验来确定其在我们15年以上的大型代码库中的价值。
到目前为止采取的步骤是:
- 签出给定的变更集
- 构建/分析
- 转到1,直到所有选定的变更集都已分析
我们看到的问题是,每次检出代码时,它都是一个全新的开始,包括nDepend配置。结果,我们有了一系列完全独立的分析集,没有趋势。
这是可以(轻松)完成的事情吗?
解决方法
我已经解决了一个问题:
- 更新NDepend设置以将NDepend项目附加到.suo文件
- 更新NDepend设置以使趋势指标“始终”记录下来
- 签出初始变更集:git checkout {changesethash}
- 构建解决方案
- 将新的NDepend项目附加到当前解决方案
- 为新的NDepend项目运行分析
- 将NDepend项目文件和NDependOut文件夹移至解决方案的.vs文件夹
- 编辑NDepend项目文件,从“。”调整.sln文件的路径。到“ ..”
这时,对要捕获其分析的每个变更集重复以下操作:
- 签出下一个变更集:git checkout {changesethash}
- 构建解决方案
- 运行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中获取启发:日期日志趋势值