# 生成的项目 {#generated-projects} 警告要求 - 一个生成的项目 - 图斯特账户和项目 ::: 要在生成的项目中有选择地运行测试,请使用`tuist test` 命令。该命令散列你的 Xcode 项目,就像预热缓存一样,一旦成功,它就会持续散列,以确定未来运行中的变化。 在以后的运行中,`tuist test` 会透明地使用哈希值来过滤测试,只运行自上次成功运行测试以来发生变化的测试。 例如,假设依赖关系图如下: - `FeatureA` 有测试`FeatureATests` ,并依赖于`核心` - `FeatureB` 有测试`FeatureBTests` ,并依赖于`核心` - `核心` 有测试`CoreTests` `tuist 测试` 也将如此: | 行动 | 描述 | 内部状态 | | ----------------------- | --------------------------------------------------- | --------------------------------------------------------- | | `tuist test` invocation | 运行`CoreTests`,`FeatureATests` 和`FeatureBTests 中的测试` | `FeatureATests` 、`FeatureBTests` 和`CoreTests` 的哈希值被持久化。 | | `功能A` 已更新 | 开发人员修改目标代码 | 和以前一样 | | `tuist test` invocation | 运行`FeatureATests` 中的测试,因为它的哈希值已更改 | `FeatureATests` 的新散列值被持久化 | | `核心` 已更新 | 开发人员修改目标代码 | 和以前一样 | | `tuist test` invocation | 运行`CoreTests`,`FeatureATests` 和`FeatureBTests 中的测试` | `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' ```