swift项目的代码度量分析器。
swift-code-metrics的Python项目详细描述
SWIFT代码指标
swift项目的代码度量分析器。
简介
这个软件的目标是提供一个由几个模块组成的Swift
编写的软件的体系结构状态的洞察。
受robert c.martin的书clean architecture的启发,软件将扫描项目以识别不同的组件,以便评估软件行业中的几种常见代码度量:
- 具体类和接口的总数
- 框架的不稳定性和抽象性。
- 距主序列的距离
- loc(代码行)
- NOC(评论数)
- POC(评论百分比)
- nom(方法数)
- 混凝土数量(类和结构数量)
- 不(测试次数)
- NOI(进口数量)
- 框架依赖关系图(内部和外部依赖关系的数量)
要求
这是一个python 3脚本,它依赖于matplotlib、adjustText、pyFunctional和pygraphviz。
这个最新的包取决于必须安装的Graphviz二进制文件。
用法
该软件包可在pip
上使用pip3 install swift-code-metrics
。
语法为:
swift-code-metrics --source <path-to-swift-project> --artifacts <output-directory> --exclude <excluded-folders> --tests-paths <test-paths> --generate-graphs
--source
是包含主xcode项目或工作区的文件夹的路径--artifacts
指向将包含生成的output.json
报表的文件夹的路径--excluded
(可选)要从分析中排除的路径子字符串的空格分隔列表(例如,Tests
将忽略包含Tests
的所有文件/文件夹)--tests-paths
(默认值:Test Tests
)与测试类匹配的路径子字符串的空格分隔列表--generate-graphs
(可选)如果通过,它将生成与分析相关的图并将它们保存在artifacts文件夹中
文档
请按照guide中的实际示例开始。
当前限制
此工具是为由不同框架组成的中/大型代码库而设计的。 脚本将扫描目录,并通过“根”文件夹的名称来标识框架, 所以它严格依赖于文件层次结构(除非指定了project path override file)
不支持使用
spm
生成的库。框架名称是使用目录结构推断出来的。如果文件在根目录中,将使用
default_framework_name
。不会检查xcodeproj。当前方法列表不支持计算变量
当前不支持代码中的内联注释(如
struct Data: {} //dummy data
)目前只支持
XCTest
测试框架
待办事项
- 代码改进
- 其他(接受建议)