内容提要
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是因为它提供更大的计算和内存实例类型,并且没有并发作业的限制。
这次迁移对新贡献者有什么影响?
迁移使得新贡献者更容易参与项目,开发新集成测试变得更快。