swift项目的代码度量分析器。

swift-code-metrics的Python项目详细描述


FOSSA StatusLicenseBuild StatuscodecovCodacy BadgePyPI

SWIFT代码指标

swift项目的代码度量分析器。

Example code distributionExample deviation main sequence
Example internal distribution

简介

这个软件的目标是提供一个由几个模块组成的Swift编写的软件的体系结构状态的洞察。 受robert c.martin的书clean architecture的启发,软件将扫描项目以识别不同的组件,以便评估软件行业中的几种常见代码度量:

  • 具体类和接口的总数
  • 框架的不稳定性抽象性
  • 距主序列的距离
  • loc(代码行)
  • NOC(评论数)
  • POC(评论百分比)
  • nom(方法数)
  • 混凝土数量(类和结构数量)
  • 不(测试次数)
  • NOI(进口数量)
  • 框架依赖关系图(内部和外部依赖关系的数量)

要求

这是一个python 3脚本,它依赖于matplotlibadjustTextpyFunctionalpygraphviz

这个最新的包取决于必须安装的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测试框架

待办事项

  • 代码改进
  • 其他(接受建议)

联系人

Mattia Campolese

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
反射Java反射:高负载下的NoSuchMethodException   java RxJava:one request>list of Integer>sequence of requests for each int>result to list   java为什么循环之前索引会增加   JavaSpring远程处理和RESTfulURL   java Hibernate搜索仅对我的实体的一部分进行索引   使用DPAD快速滚动时,java RecyclerView onCreateViewHolder调用过多   java将JSON解析到一个表中   java导航抽屉标题textview nullpointerexception   基于接口的Java链接队列   java Guice运行时依赖项参数重新注入   java展平/压缩ZSH中的深度嵌套目录   JavaSpring:Http406此请求标识的资源只能   java如何制作Android启动器图标   Java代码在windows上显示不正确(包含希腊语句子)   使用yourkit进行内存分析所用的java时间   java为什么可以序列化属性而不能序列化对象本身?