我正在使用Jenkins进行iOS项目的CI,希望能够收集一些关于项目的软件度量。但是我只能找到CLOC这个只计算代码行数(LOC)的工具,虽然比没有要好一些。
我真正想要计算的是方法、类、调用其他类的次数等(用于复杂度分析等高级功能)。
也许我错过了一些工具,请告诉我。
我正在使用Jenkins进行iOS项目的CI,希望能够收集一些关于项目的软件度量。但是我只能找到CLOC这个只计算代码行数(LOC)的工具,虽然比没有要好一些。
我真正想要计算的是方法、类、调用其他类的次数等(用于复杂度分析等高级功能)。
也许我错过了一些工具,请告诉我。
OCLint 是一个静态代码分析工具,用于检查 C、C++ 和 Objective-C 代码中的潜在问题,以提高质量并减少缺陷,这些潜在问题包括:
可能存在的错误 - 空的 if/else/try/catch/finally 语句
未使用的代码 - 未使用的本地变量和参数 复杂的代码 - 高圆形复杂度、NPath 复杂度和高 NCSS 冗余的代码 - 冗余的 if 语句和无用的括号 代码异味 - 长 方法和长参数列表 不良实践 - 反转逻辑和 参数重新赋值 ...
除了代码行数和测试覆盖率之外,我不确定是否已经有针对Obj-C的这些工具。我猜测随着来自其他平台使用指标的开发人员的涌入,我们很快就会看到一些工具,但在我作为Obj-C开发人员的7年中,我没有听说过任何人拥有收集它们的工具。当然,被证明是错误的也是好事 :)
ProjectCodeMeter 可以度量 Objective-C 代码的流程复杂度(类似于 McCabe 圈复杂度),但它并不计算方法和类。
我使用了一些工具来收集代码质量指标:
我刚刚偶然发现了Xcode Statistician(链接似乎已经失效),但是还没有尝试过。可以直接下载zip归档文件。
nm
命令的输出,或者运行doxygen。gcov
,或者运行doxygen。