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连接usb到uart设备到安卓设备>3.1   可以强制Php中的web应用程序与Java中的桌面应用程序一起工作吗?   java为什么自定义系统类加载器不工作?   数组在Java中解析具有多个分隔符的字符串   PMD Java 8德米特定律   JavaSpringMVC表单验证不适用于嵌套的复杂类型   让Eclipse Java组织导入以使用Google checkstyle   java Appium:无法创建新会话   java如何在数组中声明新字段   java如何解决“无法初始化类org.apache.cassandra.config.DatabaseDescriptor”?   java AsyncTask创建socket   java向@CreatedBy添加更多信息   如何在ubuntu中运行包含大量jars依赖项的java文件   java如何使用<s:select>标记并在中休眠来填充下拉列表?   java获取错误:找不到符号变量“level”和“next_level_button”   javaweb应用中基于UI的ajax显示代码流   Java长到MySql   java JvisualVM:奇怪的应用程序行为   ubuntu将Java程序的输出结果保存到一个文件中