GitHub如何通过新的运行器功能缩短iOS应用测试时间

GitHub如何通过新的运行器功能缩短iOS应用测试时间

💡 原文英文,约800词,阅读约需3分钟。
📝

内容提要

GitHub Actions团队与GitHub iOS团队合作,通过使用苹果硅芯片提高了iOS应用程序的测试速度。他们将测试套件分成了独立的模块,每个模块都可以独立构建和测试,从而获得更快的反馈。使用苹果硅芯片,他们将测试时间缩短了60%,从38分钟减少到15分钟。此外,GitHub Actions还提供了50个并发运行器,可以并行进行模块化测试。

🔎

延伸解读

模块化拆分:从单体到独立测试

GitHub iOS 团队将约 60 个第一方模块的测试套件拆分为独立作业,每个模块可独立构建和测试。这种拆分不仅让小型模块在 2-3 分钟内完成测试,还能快速定位特定模块的失败,无需等待整个单体构建完成。模块化是缩短反馈周期的关键一步。

苹果硅芯片带来的性能提升

迁移到 M1 macOS 运行器后,测试时间从 38 分钟减少到 15 分钟,降幅达 60%。苹果硅芯片提升了构建性能和可靠性,并支持所有苹果平台的本地测试,避免了跨编译或模拟器带来的问题。同时,CI 与开发机架构一致,便于本地复现和修复问题。

并发运行器加速并行测试

GitHub Actions 为企业账户提供 50 个并发运行器,为免费和团队计划提供 5 个。GitHub iOS 团队利用这些并发运行器,为每个拉取请求启动 50 个作业并行执行模块化测试,进一步缩短了整体测试时间。并发能力是模块化测试发挥效用的重要支撑。

CI 性能分析:构建与测试分离

团队将每个模块的 CI 分为构建和测试两个独立步骤,使用 xcodebuild 的 build-without-testing 和 test-without-building。这有助于识别运行时间长的单元测试,或发现只需几秒的快速测试,从而针对性地优化测试流程,提升整体效率。

❓

Q&A

GitHub如何利用苹果硅芯片提高iOS应用的测试速度?

GitHub通过使用苹果硅芯片,将测试套件分成独立模块,并在M1 macOS运行器上进行测试,从而将测试时间缩短了60%。

使用M1 macOS运行器后,iOS应用的测试时间减少了多少?

测试时间从38分钟减少到15分钟,缩短了60%。

GitHub Actions提供了多少个并发运行器?

GitHub Actions为企业账户提供50个并发运行器,免费和团队计划提供5个。

分模块测试对开发流程有什么好处?

分模块测试可以更快地获得反馈,便于识别和修复特定模块的失败,而不必等待整个构建完成。

苹果硅芯片对构建性能有什么影响?

苹果硅芯片提高了构建性能和可靠性,支持所有苹果平台的本地测试,避免了交叉编译或仿真带来的问题。

如何分析CI性能以提高测试效率?

通过将每个模块的CI分为构建和测试两个步骤,使用xcodebuild的build-without-testing和test-without-building,可以识别耗时的单元测试。

🏷️

标签

➡️

继续阅读