一份 YAML 测试管住十二种语言的驱动
来源:emptysqua.re — 2026-10
📋 概述
MongoDB 有十二种语言的客户端驱动,大多是用目标语言重写的原生实现,所以行为一致性只能靠测试保证。他们先是放弃了 Cucumber,改用自建的 YAML 测试语言,后来发展成 Unified Test Format:近 1500 个 YAML 文件校验十几个规范的一致性,十来年里还从各驱动里删掉了两万多行测试运行器代码。
🔑 核心要点
- 最初想用 Cucumber 统一各语言测试,被同事强烈反对,创始人只觉得"好笑",于是放弃
- 2020 年把各规范的 YAML 测试归并成 Unified Test Format,七个驱动砍掉专用 runner,合计删掉 22000 行
- 语料从 2021 年约一千行涨到今天的 124000 行
- 拿"五个驱动在采用 YAML 测试前后"做自然实验:四个驱动缺陷率下降
- 反例是 Node.js 驱动,缺陷率反而上升,多年后才发现 BulkWriteResult / BulkWriteError 与规范不一致
- 用 Claude 分类这些驱动里 6836 个已解决工单,据此统计真正的规范违背数
💡 金句
Testing drivers with YAML is one of the most successful projects I've ever been part of.
👍 0
👎 0
← 返回 Lobsters 首页