尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Quick 文件模板(Xcode File Templates)安装指南:Alcatraz 与 Rakefile 两种方式详解
测试开发工具【免费下载链接】QuickThe Swift (and Objective-C) testing framework.项目地址https://gitcode.com/gh_mirrors/qu/Quick点击查看免费下载Quick 仓库内置了面向 Swift 与 Objective-C 两套 Xcode 文件模板安装后即可在 Xcode 的“新建文件”向导中一键生成 QuickSpec 测试类与 QuickConfiguration 配置类。本文以 Quick 仓库的模板目录与 Rakefile 实现为证据讲解 Alcatraz 包管理器安装、Rakefile 手动安装/卸载两条路径并逐行拆解模板内容与底层配置机制帮助你快速在 Xcode 工程中落地 Quick 测试脚手架。Quick 仓库内置了哪些文件模板Quick 的仓库根目录下有一个名为 Quick Templates 的目录注意目录名带空格其中包含两个.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.plistQuick Spec Class生成一个继承自QuickSpec的测试用例类Spec 类用于编写describe/context/it等行为驱动风格的用例。Quick Configuration Class生成一个继承自QuickConfiguration的配置类用于在测试运行前配置 Quick 的全局行为或注册跨文件共享的sharedExamples。两个模板包的TemplateInfo.plist都将Kind声明为Xcode.IDEKit.TextSubstitutionFileTemplateKind并把BuildableType设为Test同时提供了Swift/Objective-C两种语言的弹窗选择项languageChoice默认值Swift以及必填的类名输入项productName。也就是说无论你使用哪种语言编写测试安装后都能在同一个新建文件向导里切换生成。方式一通过 Alcatraz 安装Alcatraz 是 Xcode 的包管理器package managerQuick 的官方文档说明模板可以直接通过 Alcatraz 安装。操作方式为在 Xcode 中打开 Alcatraz 的 Package Manager 窗口在搜索框中检索 “Quick”找到 Quick 模板并点击安装。安装完成后即可在 Xcode 的“新建文件”面板中找到 Quick 分类下的模板入口。需要说明的是Alcatraz 这种方式面向的是旧版 Xcode 的插件生态若你的 Xcode 版本较新不再支持该包管理器建议直接采用下面第二种方式——通过仓库自带的 Rakefile 手动安装。方式二通过 Rakefile 手动安装与卸载仓库根目录的 Rakefile 中定义了templates命名空间包含install与uninstall两个任务这是当前推荐的手动安装方式。安装克隆仓库后在仓库根目录执行$ git clone https://gitcode.com/gh_mirrors/qu/Quick $ rake templates:install对应 Rakefile 中的实现见 Rakefilenamespace 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 end从源码可以看出这条安装命令背后实际做了三件事目标安装目录被固定为~/Library/Developer/Xcode/Templates/File Templates/Quick——这正是 Xcode 扫描用户级文件模板的标准路径若该目录已存在说明之前已经安装过任务会直接抛出RAKE TASK FAILED错误并中止避免重复覆盖若目录不存在则先递归创建目标目录再把 Quick Templates 下的两个.xctemplate包整体复制过去。卸载卸载同样简单执行$ rake templates:uninstall对应 Rakefile 中的实现见 Rakefiledesc Uninstall Quick templates task :uninstall do rm_rf install_dir end卸载任务会直接删除整个~/Library/Developer/Xcode/Templates/File Templates/Quick目录。需要注意由于卸载是整目录删除若你自己往该目录中添加过自定义模板也会一并被移除。安装后在 Xcode 中如何创建 Spec 文件模板安装完成后重启 Xcode让模板缓存刷新然后在工程中选择测试 target 对应的目录执行File → New → File...在模板列表中找到Quick分组即上面安装的File Templates/Quick目录选择Quick Spec Class或Quick Configuration Class在弹出的向导中输入 Spec / Configuration 的类名Spec Name:/QuickConfiguration Name:必填对应TemplateInfo.plist中的productName在Language:弹窗中选择 Swift 或 Objective-C点击创建Xcode 会依据所选语言与类名自动填充生成文件。模板中的___FILEBASENAME___、___FILEBASENAMEASIDENTIFIER___、___DATE___、___FULLUSERNAME___等占位符是 Xcode 文件模板的标准宏会在新建文件时被替换为真实文件名、合法标识符、当前日期与用户名。模板内容逐行解析Quick Spec Class 模板Swift 版本见 Quick Templates/Quick Spec Class.xctemplate/Swift/FILEBASENAME.swiftimport Quick import Nimble class ___FILEBASENAMEASIDENTIFIER___: QuickSpec { override class func spec() { } }模板默认引入了Quick与Nimble两个模块并生成了一个继承自QuickSpec的空类override class func spec()内即为用例编写区。QuickSpec是 Quick 在 Swift 中的核心入口类spec()类方法会在测试发现阶段被调用用于注册所有describe/context/it示例相关实现见 Sources/Quick/QuickSpec.swift。Objective-C 版本见 Quick Templates/Quick Spec Class.xctemplate/Objective-C/FILEBASENAME.mimport Quick; import Nimble; QuickSpecBegin(___FILEBASENAMEASIDENTIFIER___) QuickSpecEndObjective-C 版本使用QuickSpecBegin(...)/QuickSpecEnd宏包裹用例体宏展开后等价于定义了一个继承自QuickSpec的类并在其spec()方法中执行宏体内部的 DSL 代码。Quick Configuration Class 模板Swift 版本见 Quick Templates/Quick Configuration Class.xctemplate/Swift/FILEBASENAME.swiftimport Quick class ___FILEBASENAMEASIDENTIFIER___: QuickConfiguration { override class func configure(_ configuration: Configuration) { } }Objective-C 版本分为头文件与实现文件两部分见 Quick Templates/Quick Configuration Class.xctemplate/Objective-C/FILEBASENAME.h 与 Quick Templates/Quick Configuration Class.xctemplate/Objective-C/FILEBASENAME.m// ___FILEBASENAME___.h import Quick; interface ___FILEBASENAMEASIDENTIFIER___ : QuickConfiguration end// ___FILEBASENAME___.m #import ___FILEBASENAMEASIDENTIFIER___.h implementation ___FILEBASENAMEASIDENTIFIER___ (void)configure:(Configuration *)configuration { } end在 Sources/Quick/Configuration/QuickConfiguration.swift 中QuickConfiguration的文档明确说明了这个类的用途子类化并重写configure(_:)类方法即可配置 Quick 在运行 spec 时的行为或定义跨 spec 文件共享的 shared examples。该文件中的实现还揭示了其执行时机configureSubclassesIfNeeded(world:)会遍历当前进程中所有QuickConfiguration的子类逐一调用其configure(configuration)该过程在 Quick 运行任何示例之前完成随后调用world.finalizeConfiguration()冻结配置文档同时提醒多个配置子类的configure方法执行顺序没有保证因此若在不同配置类中设置相同属性结果是不确定的undefined behavior。而在 Sources/Quick/Configuration/QCKConfiguration.swift 中可以看到Configuration即QCKConfiguration对象暴露的常用配置能力这些都可以写在模板生成的configure方法体内beforeEach/afterEach/aroundEach注册全局的示例级钩子支持带ExampleMetadata的变体并在异步 spec 上自动桥接到主线程执行beforeSuite/afterSuite注册套件级钩子include(_:)/exclude(_:)添加自定义的示例过滤规则ExampleFilterrunAllWhenEverythingFiltered当没有示例匹配过滤条件时是否运行全部用例默认true。模板TemplateInfo.plist的Summary字段也印证了这一点它将该类描述为 “A QuickConfiguration subclass, overload configure: to configure the behaviour when running specs, shared examples that are used across spec files.”常见问题与注意事项重复安装报错rake templates:install检测到~/Library/Developer/Xcode/Templates/File Templates/Quick已存在时会直接失败。此时要么先执行rake templates:uninstall要么手动删除该目录后再安装。卸载是整目录删除uninstall使用rm_rf移除整个 Quick 模板目录请勿在该目录中存放其他自定义模板。语言选择两个模板都默认 Swift见TemplateInfo.plist中languageChoice的Default值如需 Objective-C 版本在新建文件向导的Language:弹窗中切换即可。路径空格仓库中的模板源目录名为Quick Templates含空格Rakefile 通过File.expand_path处理直接手工复制时注意保持该目录名完整。延伸阅读Rakefiletemplates命名空间的完整实现Quick Templates两个.xctemplate模板包的源码与TemplateInfo.plistDocumentation/ja/ConfiguringQuick.mdQuickConfiguration全局配置的完整用法含beforeEach、sharedExamples等Documentation/en-us/ConfiguringQuick.md配置机制的英文文档Sources/Quick/Configuration/QuickConfiguration.swift 与 Sources/Quick/Configuration/QCKConfiguration.swift配置类的底层实现赞分享测试开发工具【免费下载链接】QuickThe Swift (and Objective-C) testing framework.项目地址https://gitcode.com/gh_mirrors/qu/Quick点击查看免费下载相关推荐Elementelement-ui安装指南npm 与 CDN 两种方式详解Elementelement ui安装指南npm 与 CDN 两种方式详解 本指南以 Element 官方中文文档「安装」一节为核心系统讲解在 Vue前端UI组件设计系统AT-UI 组件库安装指南两种高效引入方式详解AT UI 组件库安装指南两种高效引入方式详解 前言 AT UI 是一款基于 Vue.js 的企业级前端组件库提供了丰富的 UI 组件和交互功能。本文将详细Lit Starter 组件安装与分发指南本地 npm 安装与 CDN 引入两种方式详解Lit Starter 组件安装与分发指南本地 npm 安装与 CDN 引入两种方式详解 packages/lit starter ts 是 Lit 官方提供前端UI组件上一篇Dubbo-samples云原生实践Service Mesh与XDS协议探索下一篇AI视频创作革命当代码成为你的导演助理创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

Product Management 插件完整实战:7 个命令,搭一条从 PRD 到指标复盘的 AI 产品工作流

Product Management 插件完整实战:7 个命令,搭一条从 PRD 到指标复盘的 AI 产品工作流

Product Management 插件完整实战:7 个命令,搭一条从 PRD 到指标复盘的 AI 产品工作流 【免费下载链接】knowledge-work-plugins Open source repository of plugins primarily intended for knowledge workers to use in Claude Cowork 项目地址: htt…

📅 2026/9/24 15:20:07
爬了 10 万条评论却不敢用?这套 Python 数据治理方案让 NLP 情感分析靠谱 10 倍

爬了 10 万条评论却不敢用?这套 Python 数据治理方案让 NLP 情感分析靠谱 10 倍

前言 很多工程师把爬虫的终点停在 print(data),以为拿到了 JSON 就大功告成。但在真实业务里,爬下来的数据只是一堆原始矿石——字符编码混乱、字段缺失、重复冗余、夹杂广告与表情包、时间格式七国八制。距离"可分析、可决策"还差着一整套**数…

📅 2026/9/24 15:15:06
数斯文化智能琴棋书画一体机实景效果与价值验证

数斯文化智能琴棋书画一体机实景效果与价值验证

走进图书馆或文化馆时,我们常看到这样的场景:孩子们对传统乐器好奇却不敢触碰,老人想写幅字却担心弄脏桌椅,年轻人路过棋桌却因找不到对手而止步。传统文化的魅力毋庸置疑,但“高门槛”和“耗材维护”成了阻碍大众深度…

📅 2026/9/24 15:15:06
MORE NEWS

更多资讯

📰

微信聊天记录导出完整指南:5步永久保存全部对话,免费开源工具WeChatMsg

微信聊天记录导出完整指南:5步永久保存全部对话,免费开源工具WeChatMsg 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.c…

📰

C++ SFINAE从入门到放弃?不,C++20 Concepts让你10分钟学会模板约束

C SFINAE从入门到放弃?不,C20 Concepts让你10分钟学会模板约束 摘要:本文用“同一个需求,三种写法”的方式,讲透C模板约束的演进——从SFINAE的“替换失败并非错误”原理,到std::enable_if的实战用法&#…

📰

Skia 官方文档站 Markdown 写作指南:基于 Hugo 与 Docsy 的内容组织、Frontmatter 与渲染特性详解

图形学 【免费下载链接】skia Skia is a complete 2D graphic library for drawing Text, Geometries, and Images. See documentation for contribution instructions. 项目地址: https://gitcode.com/gh_mirrors/ski/skia 点击查看 免费下载 导读 本文是 Skia 官…

📰

MemOS 消息查询 API 实战:使用 POST /product/get/message 拉取原始对话历史

人工智能大模型Agent 记忆AI AgentRAG知识图谱dsh-plugin 【免费下载链接】MemOS Self-evolving memory OS for LLM & AI Agents: ultra-persistent memory, hybrid-retrieval, and cross-task skill reuse, with 35.24% token savings and DeepSeek Harness support. 项目…

📰

Linux下使用curl命令发送GET和POST请求

目录:1、发送get请求带请求头2、发送post请求带请求头带参数3、发送请求拼接请求头获取文件信息接口4、发送带文件流的请求保存接口1、发送get请求带请求头 curl -X GET "http://localhost:8080/onlinePreviewCallbackApiManagement/v1/3rd/file/info" -H…

📰

【Coze】【视频】天涯实事工作流

今天给大家演示一个 天涯实事 Coze 视频工作流,它将大模型的新闻锐评、音频合成、字幕生成与图片排版有机结合,最终实现短视频的自动化生成。通过这个流程,可以把复杂的时事热点快速转化为带有声音、画面和字幕的完整视频,让用户直观地感受到新闻解读与创意表达的结合。 文…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬