惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

I
InfoQ
S
SegmentFault 最新的问题
N
Netflix TechBlog - Medium
B
Blog
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 聂微东
Last Week in AI
Last Week in AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
V2EX
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
大猫的无限游戏
大猫的无限游戏
U
Unit 42
J
Java Code Geeks
IT之家
IT之家
aimingoo的专栏
aimingoo的专栏
博客园 - 叶小钗
T
The Blog of Author Tim Ferriss
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
腾讯CDC

InfoQ - 促进软件开发领域知识与创新的传播

Meta 收购 Manus 这事儿泡汤了 5.5万 Star 开源项目 Ghostty 被迫出走,GitHub 正在终结一代技术人的乌托邦 Slack 长时运行多智能体系统的上下文管理方案 从 T+1 到分钟级:金城银行基于 Apache Doris 构建高可靠、强一致的实时数据平台 谷歌云推出 Agents CLI,简化 AI 智能体开发全流程 Claude官方击穿高薪、高学历的安全防线!Anthropic点名10大高危职业,但有群人暂时稳了 亚马逊云科技终止 WorkMail 服务,并将 App Runner 转入维护模式 OPPO小布记忆:全模态碎片化内容的理解与智能整理实践|AICon上海 模力工场038周AI应用周榜:工具在消失,工作流在出现 Akamai CEO Tom Leighton:Agent 时代来临,云基础设施正从“中心化”转向“分布式边缘” 日均数百亿入库背后:从“人肉调度”到K8s弹性架构,度小满金融基于OceanBase重构入库架构实践 百度文库网盘发布GenFlow 4.0:月活用户超1亿,要把网盘变成全端AI工作台 Altman 投的 Agent 终端 Warp 开源了!斩获3.5万star 哪些客户需要拒, 敢让龙虾决定吗?_AI&大模型_InfoQ 中文站_InfoQ精选视频 从开发到生产:为什么越来越多的机器学习团队纷纷迁移到 Snowflake | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 探索多智能体工作流:LangGraph Snowflake Cortex AI | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 腾讯云分布式缓存数据库:AI Agent - 从提示词工程到 Harness 工程 | 腾讯云数据库 DBTalk_腾讯_凌敏_InfoQ精选视频 基于 Streamlit 为 CSV 数据构建分析智能体 | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 AI 智能体:告别文档缺漏 | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 构建 AI 驱动的数据管道:深度探讨 Snowflake Openflow 与非结构化数据 | BUILD 2025_AI&大模型_王玮_InfoQ精选视频 云端太贵、本地不够聪明,英特尔押注“端云混合AI”:智能体PC会替人完成工作 不到10%的存储投入,可能拖垮90%的GPU投资!IBM把AI Agent塞进存储系统,算清企业最容易忽略的一笔账 Snowpark 上手实战 | BUILD 2025_大数据_王玮_InfoQ精选视频 ClickHouse + Langfuse,构建 Agent 可观测基石 腾讯云分布式缓存数据库:Cluster Proxy 共享连接架构深度解析 | 腾讯云数据库 DBTalk_腾讯_凌敏_InfoQ精选视频 AI 写代码太烧钱了:Copilot、Claude 一起涨价,不如把程序员请回来? 英特尔发布至强600系列工作站处理器与锐炫Pro B70 GPU,全新AI工作站来了 腾讯云分布式缓存数据库:从 Redis 到 Valkey - 开源社区如何快速创新 | 腾讯云数据库 DBTalk_腾讯_凌敏_InfoQ精选视频 印奇这次要“从0重做”智驾模型!首谈阶跃和千里双公司布局:中国AI商业闭环要靠车跑出来 从Cursor返聘归来,90后华裔女高管带Claude开启日更模式:token成本比工程师工资低多了!
DoorDash利用Copilot将基于XCTest的iOS测试套件转换为Swift T...
Sergio De Si · 2026-05-09 · via InfoQ - 促进软件开发领域知识与创新的传播

DoorDash 工程师 Matheus Gois 表示,结合 Copilot 以及强大的可靠性保障措施,DoorDash将他们基于iOS XCTest的测试套件迁移到了Swift Testing,快速、安全地完成了一个大型测试套件的现代化改造,并获得了可度量的性能提升。

据 Gois 称,DoorDash 工程师预计迁移将带来更好的性能和更准确的故障诊断。他们的基准测试证实,Swift Testing 比 XCTest 快四到七倍,这在很大程度上归功于其能够并行运行同步和异步代码的能力。此外,#expect 宏提供了更丰富的失败信息,这有助于加快调试速度。

运行速度缓慢且大部分串行化的 XCTest 运行阻塞了 DoorDash 的 iOS 持续集成(CI)管道。随着我们的应用程序和共享包不断增长,CI 测试步骤的分钟时长延长到了两位数,消耗了更多的 CI 资源,并减慢了每位工程师的迭代速度。

为了使迁移能够在公司范围内扩展,DoorDash 将自动化与清晰的工程原则相结合:每个团队负责迁移自己的测试,使用一套共同的工具和指南;工具优先的方法确保了所有的团队都采用一致且可重复的工作流程;而严格的可靠性检查点则最大限度地降低了迁移后测试出现不稳定现象的风险。

Gois 解释说,DoorDash 工程师构建了一个开发者友好的环境,使用了 AI 编码助手 Cursor、SweetPad for Visual Studio Code/Xcode 集成以及一个自定义的 MCP 服务器,使工程师能够在迁移前后直接在编辑器内构建目标和运行测试:

主要暴露的工具是 execute_vscode_command,它接受一个 commandId,如 sweetpad.build.build 或 sweetpad.build.test,并运行该操作。服务器会在 SweetPad 扩展激活时自动启动,并在编辑器关闭时停止。

为了“教”Cursor 迁移测试,他们定义了一个“迁移规则”,可以自动完成从 XCTest 到 Swift Testing 的大部分机械转换,如更改导入语句、将 XCTAssert 转换为 #expect、插入 @Test 宏以及按需处理 async/await 等。这使得工程师能够专注于正确性而不是语法变化。

为了确保可靠性,每个迁移的测试必须连续十次运行通过,消除任何不稳定性和时间敏感性之后才能被采纳。

在迁移过程中,DoorDash 工程师采用了 Bazel,这要求他们稍微扩展下他们的代理工作流。具体来说,他们将 bazel test 命令直接包含在提示词中,使代理能够在没有手动干预的情况下在本地运行测试。这同时也支持了一个迭代循环:代理运行测试并修复任何出现的错误,并重复该过程,直到获得一次无错误的执行结果。

这使得 Bazel 始终处于可靠性保障的核心位置。无论是从本地终端还是通过 SweetPad 和 Cursor 触发测试,运行目标是相同的,都遵守相同的十次运行规则,而且每个包都要达到相同的标准。

这个过程揭示了一些隐藏的问题,如共享状态、顺序依赖和时间假设。这些问题之前大部分都被 XCTest 的顺序执行所掩盖了,但被 Swift Testing 的并行模型所暴露。

总体而言,迁移到 Swift Testing 使 CI 中的测试执行速度提升了大约 60%,整体构建速度提升了大约 40%,这降低了基础设施成本,节省了开发者的时间。要了解更多详情,包括所用 Copilot 提示词的摘录,请参阅原文。

原文链接:

https://www.infoq.com/news/2026/05/doordash-copilot-swift-testing/