C# 查找引用最多的方法

C# 查找引用最多的方法,c#,unit-testing,code-analysis,C#,Unit Testing,Code Analysis,所以我有了这个用C编写的大型代码框架,我想开始编写单元测试。我们有一些单元测试,但只有大约10%到15%的代码覆盖率。显然,我想让我的时间变得最有用,首先开始为引用最多的方法编写单元测试 有没有人知道一个代码分析工具可以告诉你哪些方法引用最多?通过这种方式来看,我可以确保最常用的代码经过良好的测试,然后从那里向后工作,或者至少得到一个领域来集中我的大部分精力。听起来像是一项工作。只需对如何使用NDepend实现查找具有大多数引用的方法进行一些改进,您只需编写以下代码查询,您可以立即获得引用最多的

所以我有了这个用C编写的大型代码框架,我想开始编写单元测试。我们有一些单元测试,但只有大约10%到15%的代码覆盖率。显然,我想让我的时间变得最有用,首先开始为引用最多的方法编写单元测试


有没有人知道一个代码分析工具可以告诉你哪些方法引用最多?通过这种方式来看,我可以确保最常用的代码经过良好的测试,然后从那里向后工作,或者至少得到一个领域来集中我的大部分精力。

听起来像是一项工作。

只需对如何使用NDepend实现查找具有大多数引用的方法进行一些改进,您只需编写以下代码查询,您可以立即获得引用最多的方法

from m in Application.Methods
orderby m.NbMethodsCallingMe descending
select new { m, m.MethodsCallingMe }
或者,您可以使用通过在方法依赖关系图上应用Google PageRank算法计算的度量,或者同时使用方法等级和引用:

from m in Application.Methods
orderby m.Rank descending
select new { m, m.Rank, m.MethodsCallingMe }
在您的博客文章中,您hype8912写道:如果您知道NDepend的CQL语法,您可以将当前的代码覆盖率结果导入到NDepend中,然后修改查询以排除已经有代码覆盖率的方法,但目前这对我来说很好

然后,代码查询可能如下所示:

from m in Application.Methods
where m.PercentageCoverage < 100
orderby m.Rank descending
select new { m, m.Rank, m.MethodsCallingMe, m.PercentageCoverage, m.NbLinesOfCodeCovered, m.NbLinesOfCodeNotCovered }

我想你可以这样做,或者是一个免费的选择。NDepend让你知道代码在哪里最多,引用最多的程序集是什么,但我看不到比程序集或名称空间更低的地方。我在NDepend Metrics屏幕上找到了一个名为Methods calling me的选择:1 method=32.5像素到此结束我放弃了给我一个我一直在寻找的所有方法的列表。请稍微扩展一下答案,这样它就不仅仅是一个链接。我会在我的博客上添加一些操作方法,并在评论中链接它。关于如何使用NDepend来查找引用最多的方法的博客文章。