选择性测试
随着项目的发展,测试量也在增加。长期以来,在每个 PR 上运行所有测试或推送到main 都需要几十秒的时间。但这种解决方案无法扩展到团队可能拥有的数千个测试。
每次在 CI 上运行测试时,您很可能都要重新运行所有测试,而不管发生了什么变化。Tuist 的选择性测试基于我们的哈希算法,只运行上次成功运行测试后发生变化的测试,从而帮助您大大加快测试运行速度。
选择性测试可与xcodebuild 一起使用,它支持任何 Xcode 项目;如果使用 Tuist 生成项目,则可以使用tuist test 命令,它提供了一些额外的便利,例如与 二进制缓存的集成。要开始选择性测试,请根据您的项目设置遵循相关说明:
MODULE VS FILE-LEVEL GRANULARITY
由于无法检测测试与源代码之间的代码内依赖关系,选择性测试的最大粒度是目标级别。因此,我们建议将目标保持在较小的范围内,并突出重点,以最大限度地发挥选择性测试的优势。
TEST COVERAGE
测试覆盖率工具假定整个测试套件一次性运行,这使得它们与选择性测试运行不兼容--这意味着在使用测试选择时,覆盖率数据可能无法反映实际情况。这是众所周知的局限性,但这并不意味着你做错了什么。我们鼓励团队反思覆盖率在这种情况下是否仍能带来有意义的见解,如果是,请放心,我们已经在考虑如何让覆盖率在未来与选择性运行正常配合。
拉取/合并请求注释
一旦您的 Tuist 项目与 GitHub 等 Git 平台连接,并且您开始使用tuist xcodebuild test 或tuist test 作为 CI 流程的一部分,Tuist 将直接在您的拉取/合并请求中发布注释,包括哪些测试已运行,哪些测试被跳过:
。
