
测试开发工具【免费下载链接】QuickThe Swift (and Objective-C) testing framework.项目地址https://gitcode.com/gh_mirrors/qu/Quick点击查看免费下载Quick 仓库自带 Swift 与 Objective-C 两种语言的测试文件模板File Templates安装后即可在 Xcode 的 New File 面板中一键生成QuickSpec测试类和QuickConfiguration配置类骨架大幅减少手写样板代码。本文以 Documentation/zh-cn/InstallingFileTemplates.md 为骨架结合仓库内 Rakefile 与Quick Templates目录下的真实模板实现完整讲解 Alcatraz 一键安装、Rakefile 手动安装/卸载的全过程并深入剖析模板目录结构与占位符替换原理帮助你彻底理解并掌控 Quick 文件模板的安装与定制。什么是 Quick 文件模板Quick 模板的本质是 Xcode 的文本替换型文件模板Xcode.IDEKit.TextSubstitutionFileTemplateKind存放在仓库根目录的 Quick Templates 文件夹中。仓库提供了两类模板模板名称用途支持的实现语言Quick Configuration Class生成QuickConfiguration子类用于在运行 spec 前配置 Quick 行为、定义跨文件共享的 Shared ExamplesSwift、Objective-CQuick Spec Class生成一个实现 Quick spec 的测试类Swift、Objective-C每个模板目录都遵循 Xcode File Template 的标准布局以Quick Spec Class.xctemplate为例Quick Templates/ ├── Quick Configuration Class.xctemplate/ │ ├── Objective-C/ │ │ ├── ___FILEBASENAME___.h │ │ └── ___FILEBASENAME___.m │ ├── Swift/ │ │ └── ___FILEBASENAME___.swift │ ├── TemplateIcon.icns │ └── TemplateInfo.plist └── Quick Spec Class.xctemplate/ ├── Objective-C/ │ └── ___FILEBASENAME___.m ├── Swift/ │ └── ___FILEBASENAME___.swift ├── TemplateIcon.icns └── TemplateInfo.plist其中文件名中的___FILEBASENAME___是 Xcode 的内置占位符创建文件时会自动替换为用户输入的文件名TemplateInfo.plist则声明了模板的类型、描述、语言选项Swift / Objective-C以及各语言对应的主模板文件具体解析见下文「模板结构深度解析」一节。方式一通过 Alcatraz 一键安装Alcatraz 是 Xcode 的包管理器插件Quick 模板已收录其中。安装步骤非常简单先安装 Alcatraz 插件在 Xcode 的包管理器窗口中搜索Quick在搜索结果中点击安装 Quick 模板。安装完成后Xcode 会自动将模板同步到用户目录下的 File Templates 目录随后即可在 New File 对话框中直接使用。需要说明的是这种方式依赖第三方插件生态且 Alcatraz 的兼容性与 Xcode 版本强相关如果更希望安装过程可控、可审计推荐使用下文基于 Rakefile 的手动安装方式。方式二使用 Rakefile 手动安装手动安装的核心思路是克隆 Quick 仓库然后运行仓库 Rakefile 中定义的templates命名空间任务将模板复制到 Xcode 的用户模板目录。安装模板$ git clone https://gitcode.com/gh_mirrors/qu/Quick.git $ rake templates:install命令执行后模板会被安装到~/Library/Developer/Xcode/Templates/File Templates/Quick安装后重启 Xcode或等待文件系统同步在新建文件时即可看到 Quick 分类下的两个模板。卸载模板$ rake templates:uninstall该命令会直接删除上述安装目录恢复环境原状。Rakefile 实现原理打开仓库根目录的 Rakefile可以看到templates命名空间的两个任务实现非常直白namespace templates do install_dir File.expand_path(~/Library/Developer/Xcode/Templates/File Templates/Quick) src_dir File.expand_path(../Quick Templates, __FILE__) desc Install Quick templates task :install do if File.exists? install_dir raise RAKE TASK FAILED: Quick templates are already installed at #{install_dir} else mkdir_p install_dir cp_r src_dir, install_dir end end desc Uninstall Quick templates task :uninstall do rm_rf install_dir end end几个值得注意的实现细节目标路径install_dir被硬编码为~/Library/Developer/Xcode/Templates/File Templates/Quick这正是 Xcode 读取用户级 File Template 的标准目录源目录src_dir指向仓库内的Quick Templates目录即../Quick Templates相对 Rakefile 所在位置幂等保护install任务在目标目录已存在时会抛出RAKE TASK FAILED错误避免重复安装覆盖已有模板。此时你需要先运行rake templates:uninstall清空旧目录再重新安装卸载即删除uninstall任务用rm_rf递归删除整个安装目录操作不可逆卸载前请确认目录内没有自行添加的定制模板。模板结构深度解析为了让你在安装后能熟练使用、甚至自定义模板下面结合仓库内的真实文件逐一拆解两类模板。Quick Spec Class生成测试类Swift 版本的模板文件位于 Quick Templates/Quick Spec Class.xctemplate/Swift/FILEBASENAME.swiftimport Quick import Nimble class ___FILEBASENAMEASIDENTIFIER___: QuickSpec { override class func spec() { } }生成后的类继承自QuickSpec并在spec()类方法中留出书写describe/context/it等用例的空位。___FILEBASENAMEASIDENTIFIER___是 Xcode 的另一个内置占位符它会把文件名转换为合法的 Swift 标识符例如文件名为FooTests时生成FooTests类。Objective-C 版本位于 Quick Templates/Quick Spec Class.xctemplate/Objective-C/FILEBASENAME.m利用 Quick 提供的宏定义来包裹用例体import Quick; import Nimble; QuickSpecBegin(___FILEBASENAMEASIDENTIFIER___) QuickSpecEndQuickSpecBegin(name)与QuickSpecEnd宏在 Sources/QuickObjectiveC/DSL/QCKDSL.h 中定义QuickSpecBegin展开为一个继承QuickSpec的接口与实现声明QuickSpecEnd负责收尾闭合二者之间就是spec()方法体供你直接书写用例。Quick Configuration Class生成全局配置类Swift 版本模板位于 Quick Templates/Quick Configuration Class.xctemplate/Swift/FILEBASENAME.swiftimport Quick class ___FILEBASENAMEASIDENTIFIER___: QuickConfiguration { override class func configure(_ configuration: Configuration) { } }configure(_:)在 Sources/Quick/Configuration/QuickConfiguration.swift 中定义为open class func每个QuickConfiguration子类的该方法会在 Quick 运行任何 example 之前被调用典型用途包括修改Configuration对象上的行为属性、通过sharedExamples定义跨文件复用的共享用例。需要注意多个子类的configure(_:)执行顺序没有保证对同一属性做多次赋值属于未定义行为。Objective-C 版本由头文件与实现文件组成头文件 Quick Templates/Quick Configuration Class.xctemplate/Objective-C/FILEBASENAME.h 声明继承自QuickConfiguration的接口import Quick; interface ___FILEBASENAMEASIDENTIFIER___ : QuickConfiguration end实现文件 Quick Templates/Quick Configuration Class.xctemplate/Objective-C/FILEBASENAME.m 中重写configure:方法#import ___FILEBASENAMEASIDENTIFIER___.h implementation ___FILEBASENAMEASIDENTIFIER___ (void)configure:(Configuration *)configuration { } endTemplateInfo.plist模板的元数据声明每个模板目录下的TemplateInfo.plist负责向 Xcode 描述模板能力。以 Quick Spec Class.xctemplate 的 TemplateInfo.plist 为例关键字段包括plist 字段取值含义KindXcode.IDEKit.TextSubstitutionFileTemplateKind声明这是一个文本替换型文件模板BuildableTypeTest标记该模板产物属于测试目标DefaultCompletionNameSpec新建文件时的默认文件名后缀Options中的productNametext 类型、必填让用户在新建面板输入 Spec 类名Options中的languageChoicepopup 类型取值为Swift/Objective-C让用户选择实现语言并通过MainTemplateFiles映射到对应语言的主模板文件其中MainTemplateFiles将语言选项与具体文件关联起来keyMainTemplateFiles/key dict keyObjective-C/key string___FILEBASENAME___.m/string keySwift/key string___FILEBASENAME___.swift/string /dictQuick Configuration Class.xctemplate 的 TemplateInfo.plist 结构与前者基本一致只是Description/Summary文案不同并额外说明了该类用于“配置运行 spec 时的行为、定义跨 spec 文件使用的共享用例”。安装后的使用方式模板安装完成后在 Xcode 中依次执行File→New→File...快捷键⌘N在模板选择器中找到Quick分类或直接搜索Quick选择Quick Spec Class或Quick Configuration Class填写类名、选择实现语言Swift / Objective-C点击 Next 完成创建。生成的测试类可以直接运行Swift 版QuickSpec子类会被 XCTest 自动发现并执行spec()中的用例Objective-C 版经QuickSpecBegin/QuickSpecEnd宏展开后行为一致。常见问题与注意事项安装目录已存在rake templates:install会因目录已存在而报错先执行rake templates:uninstall再重装即可若你已手动向该目录添加过定制模板请先做好备份因为卸载会删除整个目录。Xcode 未显示模板确认模板被安装到了~/Library/Developer/Xcode/Templates/File Templates/Quick这一标准位置必要时重启 Xcode。模板版本与 Quick 版本匹配仓库内模板默认同时import Quick与import Nimble请确保测试 target 已正确集成 Quick 与 Nimble参见 Documentation/zh-cn/InstallingQuick.md。自定义模板理解了___FILEBASENAME___、___FILEBASENAMEASIDENTIFIER___等占位符与TemplateInfo.plist的字段含义后你可以基于仓库模板复制出自己的 xctemplate 目录按需增删describe/context骨架或修改 import 列表再手动放入 Xcode 的模板目录即可生效。小结Quick 文件模板的价值在于把「新建测试文件 → 手写类声明与 import」的重复劳动压缩为一次模板选择Alcatraz 适合追求速度的场景Rakefile 手动安装则提供了完全可控、可审计的安装/卸载流程。结合本文对 Rakefile 实现与 Quick Templates 模板文件的源码级拆解你不仅能顺利完成安装还能在需要时轻松定制出符合团队规范的专属 Quick 测试模板。赞分享测试开发工具【免费下载链接】QuickThe Swift (and Objective-C) testing framework.项目地址https://gitcode.com/gh_mirrors/qu/Quick点击查看免费下载相关推荐lefthook 安装完全指南包管理器、系统发行版与二进制手动安装全解析lefthook 安装完全指南包管理器、系统发行版与二进制手动安装全解析 Lefthook 是一个以“独立、零依赖二进制”形式分发的 Git hooks 管理开发工具gitignore 模板库与安装指南用户安装文档的管理gitignore 模板库与安装指南用户安装文档的管理 引言你还在手动编写.gitignore文件吗 作为开发者你是否曾因项目中充斥大量临时文件、日志或Ceph 存储集群手动安装指南APT/RPM 软件包安装与源码构建安装全解析Ceph 存储集群手动安装指南APT/RPM 软件包安装与源码构建安装全解析 本篇指南详细讲解如何在 Ceph 节点上 手动安装 Ceph 存储集群软件 ——存储分布式文件系统对象存储后端高可用上一篇Angular 动画测试基础设施深度解析MockAnimationDriver 与 MockAnimationPlayer 实践指南下一篇如何快速掌握ta-lib-python与Pandas集成金融时间序列分析的终极指南 创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考