免费C#指标计算库(DLL)
我想问你是否知道一些计算CK指标的免费C#库(dll)(主要是Cyclomatic Complexity)。
对于我打算做的项目,我需要这样做。 我知道已经有一些完成的解决方案可以计算CK指标并以各种forms显示给你,但我需要的是我可以在我的应用程序中使用的解决方案。 所以在开始写自己之前我首先想问你。
谢谢
DrivenMetrics是一个开源的C#命令行工具。 核心function作为库与命令行控制台客户端隔离( 此处可以使用Core项目)。
即使非常简单,它也可能符合您的需求:它是免费的,计算行数并计算方法的圈复杂度(潜在代码路径的数量)。
这是通过直接分析IL来实现的,这要归功于Mono.Cecil (NDepend依赖的库)。 这允许对使用C#,VB.Net编写的代码构建的程序集执行分析,…
- 该项目已在此处公布。
- 代码源可以在github上找到 。
- 还提供打包版本。
- 它适用于Windows和Mono。
更新:
另一个选择是令人惊叹的 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); } }
- 该项目在此处描述
- 代码源可以在github上找到
- 打包版本也可用
- 它适用于Windows和Mono
我正在使用SourceMonitor ,这是一个很好的免费软件应用程序,可以测量各种语言(包括C#)的代码复杂性和其他指标。 我们从命令行驱动它以生成XML输出,然后我们使用LINQ to XML来提取和排序我们感兴趣的数据。然后我们使用NVelocity创建HTML报告。
我知道它不是托管库,但您可能会发现它可以满足您的需求。
我使用Microsoft的工具来计算C#程序集的代码度量。
它包括环状复合物,可维护性指数等。
详情如下:
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
这不是免费的,但我对NCover有过这方面的良好经验。 他们还很好地集成了很多CI工具。
支持82个代码指标 NDepend是针对.NET开发人员的代码指标Roll’s Royce工具(但它是一个商业工具)。