我想问你是否知道一些计算CK指标(主要是圈复杂度)的免费C#库(dlls)。
我正计划做一个项目,我需要它。我知道已经有一些已完成的解决方案来计算CK指标并以各种形式显示给您,但我需要的是一个我可以在我的应用程序中使用的解决方案。所以在我自己开始写一个之前,我首先想问你。
谢谢
发布于 2010-10-24 01:03:12
DrivenMetrics是一个开源的C#命令行工具。核心功能作为一个库与命令行控制台客户端隔离(核心项目可从here获得)。
即使非常简单,它也可以满足您的需要:它是免费的,可以计算方法的行数和圈复杂度(潜在代码路径的数量)。
这是通过直接分析IL来执行的,这要归功于Mono.Cecil ( NDepend所依赖的同一个库)。这样就可以对使用C#、VB.Net等编写的代码构建的程序集执行分析。
已经宣布了here.
更新:
另一个选择是令人惊叹的Gendarme,这是Mono项目的一个静态分析工具。
作为用法示例,下面的代码显示了程序集中每个方法的圈复杂度。
ModuleDefinition module = ModuleDefinition.ReadModule(fullPathToTheAssembly);
foreach (var type in module.Types)
{
foreach (var me in type.Methods)
{
if (!me.HasBody || me.IsGeneratedCode() || me.IsCompilerControlled)
continue;
var r = AvoidComplexMethodsRule.GetCyclomaticComplexity(me);
Console.WriteLine("{0}: {1}", me.ToString(), r);
}
}Mono Mono描述了该项目的源代码,可以在github
上使用
发布于 2009-06-27 08:26:50
我使用的是SourceMonitor,这是一个很好的免费应用程序,可以测量包括C#在内的各种语言的代码复杂性和其他指标。我们从命令行驱动它来生成XML输出,然后我们使用LINQ to XML来提取和排序我们感兴趣的数据。然后我们使用NVelocity来创建超文本标记语言报告。
我知道它不是一个托管库,但你可能会发现它可以做你需要的事情。
发布于 2013-02-23 13:22:55
我正在使用微软的一个工具来计算C#程序集的代码度量。
它包括cyclo、可维护性指数等。
详细信息请查看此处:
http://blogs.msdn.com/b/camerons/archive/2011/01/28/code-metrics-from-the-command-line.aspx
请在此处下载:
http://www.microsoft.com/en-us/download/details.aspx?id=9422
https://stackoverflow.com/questions/1052269
复制相似问题