1000 以上の単体テストを行うプロジェクトがあり、xctool の並列化オプションを使用してビルドを高速化することを考えていました。
だから私はそれをオンにして、logicTestBucketSize を 50 に設定しました。
私の質問: バケットは独自のサンドボックスで独立して実行されますか、それとも単体テストで設定されるグローバル変数を共有しますか? これは、テスト間の相互汚染を説明する可能性があります
はい。テストを並行して実行する場合、xctool はテストの各バケットを 1 つのプロセスで実行し、複数のバケットを異なるプロセスで同時に実行します。さらに、バケット化をケース ベースで行うかクラス ベースで行うかを で選択できます-bucketBy class
。多くのテスト ケースを含む非常に大きなテスト クラスがない限り、おそらく class を使用する必要があります。
次の理由により、以前は失敗しませんでしたが、現在はテストが失敗する可能性があります。
最初のタイプの失敗に対処する良い方法は、バケット サイズ 1 で実行することです (後で実行するモードに応じて、バケットごとのモードまたはバケットごとのモードのいずれか)。