当一家外卖巨头的测试套件跑到两位数的分钟数,工程师们选择让AI接手——但前提是,它得先通过10次连续运行的可靠性考试。
为什么XCTest成了瓶颈
![]()
DoorDash的iOS持续集成管道被慢速、基本串行化的XCTest运行堵死了。应用和共享包膨胀后,CI测试步骤拉长到十几分钟,消耗更多资源,拖慢每位工程师的迭代速度。
工程师Matheus Gois透露,团队迁移前预判了两个收益:性能提升和更清晰的失败诊断。基准测试验证了猜测——Swift Testing比XCTest快4到7倍,核心原因是它能对同步和异步代码并行跑测试。此外,#expect宏能输出更丰富的失败信息,加速调试。
但速度不是唯一诉求。要让迁移在公司层面规模化,DoorDash定了三条铁律:各团队自主负责自有测试迁移,共用工具和指南;工具优先策略确保全公司流程一致可复现;严格的可靠性门禁把迁移测试的不稳定性风险压到最低。
Cursor不是魔法,是带规矩的学徒
Gois详解了工程师搭建的开发环境:AI编程助手Cursor、SweetPad(用于Visual Studio Code与Xcode集成)、以及一个定制MCP服务器。后者让工程师能在编辑器内直接构建目标、运行测试,迁移前后无缝衔接。
核心暴露的工具是execute_vscode_command,接收如sweetpad.build.build或sweetpad.build.test这类commandId并执行。服务器随SweetPad扩展激活自动启动,编辑器关闭时停止。
「教」Cursor迁移测试的关键,是定义一套「迁移规则」,把XCTest到Swift Testing的机械转换自动化:改import语句、XCTestAssert转#expect、插入@Test宏、按需处理async/await等。这让工程师专注正确性,而非语法折腾。
但自动化不等于放任。每条迁移后的测试必须通过连续10次运行,剔除所有不稳定性和时间敏感因素,才被允许入库。
Bazel入场:把可靠性故事讲到底
迁移中途,DoorDash工程师切到Bazel构建系统。这要求他们稍微扩展代理工作流:直接把bazel test命令写进提示词,让代理无需人工干预就能本地跑测试。
这支撑起一个迭代闭环——代理跑测试、修复报错、再跑、直到干净执行。Gois强调:「这让Bazel稳居可靠性叙事的核心。无论测试从本地终端触发,还是通过SweetPad和Cursor,目标相同、10次运行的门槛相同。」
清单:DoorDash的AI迁移五要素
1. 性能基准先行
迁移不是为追新。团队先量化XCTest的拖累——CI管道双位数分钟、资源消耗、迭代延迟——再验证Swift Testing的4-7倍提速是否值得投入。
2. 工具链闭环
Cursor+SweetPad+定制MCP服务器,把「写代码-构建-测试」压缩进同一编辑器窗口。减少上下文切换,就是减少工程师放弃自动化、改手动操作的概率。
3. 规则即代码
迁移规则把重复劳动编码化:import、宏、异步转换。但规则只处理语法,正确性校验留给工程师——AI做苦力,人做判断。
4. 10次运行门禁
稳定性没有近似值。连续10次通过是硬门槛,筛掉时间敏感测试、环境依赖测试、所有「本地能过CI挂」的幽灵bug。
5. 构建系统中立
中途切Bazel没打乱流程,因为代理工作流被设计成「命令即接口」。bazel test嵌入提示词后,迭代-修复-重跑的闭环照旧运转。
AI编程的诚实成本
DoorDash的案例戳破了一个幻觉:AI代码生成不需要工程纪律。恰恰相反——4-7倍提速的背后,是门禁、基准、工具链、迭代闭环的精密咬合。
Gois的叙述里没有「AI自动完成迁移」的童话。有的是:团队先被XCTest的串行瓶颈折磨到两位数分钟,再亲手搭建MCP服务器,再定义迁移规则,再设10次运行的铁律,再在Bazel切换时调整提示词。
AI在这里是加速器,不是替代者。它加速的是「已理解的问题」的解决——语法转换、重复执行、错误迭代。但「理解问题」本身,从性能瓶颈诊断到可靠性标准制定,仍是工程师的主场。
这对25-40岁的科技从业者是个清醒剂。你们讨厌注水,要信息密度——那这里的信息密度在于:AI编程的收益,与工程成熟度成正比。测试基础设施混乱的团队,喂给Cursor的提示词也会混乱;CI管道本就脆弱的门禁,AI只会更快击穿。
DoorDash的清单是份自检表。你的团队有量化基准吗?有工具链闭环吗?有把「正确性」从「语法」剥离的规则吗?有10次运行的耐心吗?构建系统切换时,代理工作流会崩吗?
Swift Testing的并行提速是开源社区给的。但把提速兑现成CI管道节省的分钟数、工程师迭代节奏的解放,是DoorDash自己的工程投资。
AI编程助手正在从「玩具」滑向「基础设施」。这个案例的启示是:滑动的摩擦力,由你的测试覆盖率、构建可靠性、团队工程文化决定。Cursor不会替你擦屁股,它只会让你擦得更快——或者崩得更快。
据说DoorDash的测试现在跑得飞快。但工程师们最怀念的,可能是那些双位数分钟的等待——毕竟那时候,他们有借口去倒杯咖啡。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.