Back to Tuist

生成的项目 {#generated-projects}

server/priv/docs/zh_Hans/guides/features/selective-testing/generated-project.md

4.191.82.8 KB
Original Source

生成的项目 {#generated-projects}

警告要求

<!-- -->
  • 一个<LocalizedLink href="/guides/features/projects">生成的项目</LocalizedLink>
  • <LocalizedLink href="/guides/server/accounts-and-projects">图斯特账户和项目</LocalizedLink>
<!-- -->

:::

要在生成的项目中有选择地运行测试,请使用tuist test 命令。该命令<LocalizedLink href="/guides/features/projects/hashing">散列</LocalizedLink>你的 Xcode 项目,就像<LocalizedLink href="/guides/features/cache#cache-warming">预热缓存</LocalizedLink>一样,一旦成功,它就会持续散列,以确定未来运行中的变化。

在以后的运行中,tuist test 会透明地使用哈希值来过滤测试,只运行自上次成功运行测试以来发生变化的测试。

例如,假设依赖关系图如下:

  • FeatureA 有测试FeatureATests ,并依赖于核心
  • FeatureB 有测试FeatureBTests ,并依赖于核心
  • 核心 有测试CoreTests

tuist 测试 也将如此:

行动描述内部状态
tuist test invocation运行CoreTests,FeatureATestsFeatureBTests 中的测试FeatureATestsFeatureBTestsCoreTests 的哈希值被持久化。
功能A 已更新开发人员修改目标代码和以前一样
tuist test invocation运行FeatureATests 中的测试,因为它的哈希值已更改FeatureATests 的新散列值被持久化
核心 已更新开发人员修改目标代码和以前一样
tuist test invocation运行CoreTests,FeatureATestsFeatureBTests 中的测试FeatureATests FeatureBTests ,以及CoreTests 的新散列值被持久化。

tuist test 与二进制缓存直接集成,可从本地或远程存储中使用尽可能多的二进制文件,从而在运行测试套件时缩短构建时间。选择性测试与二进制缓存相结合,可大大缩短在 CI 上运行测试所需的时间。

用户界面测试{#ui-tests}

Tuist 支持用户界面测试的选择性测试。不过,Tuist 需要提前知道目的地。只有指定目的地 参数,Tuist 才会有选择地运行用户界面测试,如

sh
tuist test --device 'iPhone 14 Pro'
# or
tuist test -- -destination 'name=iPhone 14 Pro'
# or
tuist test -- -destination 'id=SIMULATOR_ID'