生成されたプロジェクト
生成されたプロジェクトでテストを選択的に実行するには、tuist test コマンドを使用します。このコマンドは、キャッシュを温めるのと同じように、あなたのXcodeプロジェクトをハッシュ化し、成功すると、将来の実行で何が変更されたかを判断するためにハッシュを持続させます。
今後の実行では、tuist test 、透過的にハッシュを使用してテストを絞り込み、最後に成功したテストの実行以降に変更されたものだけを実行する。
例えば、次のような依存関係グラフを仮定する:
FeatureAはFeatureATestsを持ち、Core に依存している。FeatureBは、FeatureBTestsをテストし、Core に依存する。コアにはテストがあるCoreTests
tuistテスト :
| アクション | 説明 | 内部状態 |
|---|---|---|
tuistテスト 呼び出し | CoreTests 、FeatureATests 、FeatureBTests のテストを実行する。 | FeatureATests,FeatureBTests andCoreTests のハッシュが永続化される。 |
FeatureA が更新される | 開発者はターゲットのコードを修正する。 | 同上 |
tuistテスト 呼び出し | ハッシュが変更されたため、FeatureATests のテストを実行する。 | FeatureATests の新しいハッシュが永続化される。 |
コア を更新 | 開発者はターゲットのコードを修正する。 | 同上 |
tuistテスト 呼び出し | CoreTests 、FeatureATests 、FeatureBTests のテストを実行する。 | FeatureATests FeatureBTests 、およびCoreTests の新しいハッシュが永続化される。 |
tuist test はバイナリキャッシングと直接統合し、ローカルまたはリモートのストレージからできるだけ多くのバイナリを使用して、テストスイートを実行する際のビルド時間を改善します。選択的テストとバイナリキャッシングを組み合わせることで、CIでテストを実行する時間を劇的に短縮できます。
UIテスト
TuistはUIテストの選択テストをサポートしている。ただし、Tuistは事前にデスティネーションを知っておく必要がある。destination パラメータを指定した場合のみ、Tuist は次のように UI テストを選択的に実行する:
sh
tuist test --device 'iPhone 14 Pro'
# or
tuist test -- -destination 'name=iPhone 14 Pro'
# or
tuist test -- -destination 'id=SIMULATOR_ID'