PlanetScale将开源Vitess测试套件从Python迁移到Go

PlanetScale将开源Vitess测试套件从Python迁移到Go

💡 原文英文,约600词,阅读约需2分钟。
📝

内容提要

PlanetScale将Vitess的测试套件从Python迁移到Go,历时四个月,迁移了197个集成测试和超过24,000行代码。新框架支持并行测试,改进了CI管道,并使用GitHub Actions提高了测试效率和反馈速度,方便新贡献者参与。

🔎

延伸解读

迁移背景与动因

PlanetScale将Vitess测试套件从Python迁移到Go,主要因为Python测试开发调试耗时,且增加贡献者的安装依赖。此外,Python 2.7支持于2020年1月1日终止,迫使团队寻求更可持续的方案。迁移旨在降低贡献门槛,提升项目可维护性。

迁移规模与实施

迁移历时近四个月,从2019年11月1日到2020年2月25日,涉及39个文件中的197个集成测试,超过24,000行Python代码。团队首先用Go构建测试框架,支持并行测试、避免端口冲突、创建独立工作目录并记录充足日志,以便故障诊断。

CI管道改进

团队将CI从Travis CI切换到GitHub Actions,以获得更大计算和内存实例,满足Vitess测试启动多个mysqld实例的需求。新配置使用超过14个并发作业,取代原先5个并发限制,减少了测试结果延迟,并避免与其他开发者CI任务冲突。

项目影响与参与

迁移后,开发新集成测试更快更容易,新贡献者上手更简单。CI改进加快了对拉取请求的反馈,提高了吞吐量。团队鼓励通过Vitess Slack频道和月度开放会议了解更多细节,例如Arindam Nayak在2020年3月19日的分享。

❓

Q&A

为什么PlanetScale将Vitess的测试套件从Python迁移到Go?

迁移的原因包括Python测试开发和调试耗时、增加的安装依赖,以及Python 2.7的支持已于2020年1月结束。

迁移过程花费了多长时间?

迁移过程历时四个月,从2019年11月1日开始,到2020年2月25日完成。

迁移了多少行代码和测试?

迁移了197个集成测试和超过24,000行的Python代码。

新测试框架有哪些改进?

新框架支持并行测试,解决了端口冲突问题,并创建了非冲突的工作目录。

为什么选择GitHub Actions作为CI工具?

选择GitHub Actions是因为它提供更大的计算和内存实例类型,并且没有并发作业的限制。

这次迁移对新贡献者有什么影响?

迁移使得新贡献者更容易参与项目,开发新集成测试变得更快。

🏷️

标签

➡️

继续阅读