XCode 16.3 日本語化計画
テストを連続して実行するか並列に実行するかを制御します。
デフォルトでは、テストは互いに並列に実行されます。並列化はテストライブラリによってタスクグループを使用して実現され、通常、すべてのテストは同じプロセスで実行されます。同時に実行されるテストの数は、Swift ランタイムによって制御されます。
並列化は、serialized 特性を使用して関数ごとまたはスイートごとに無効にすることができます。
@Test(.serialized, arguments: Food.allCases) func prepare(food: Food) { // This function will be invoked serially, once per food, because it has the // .serialized trait. } @Suite(.serialized) struct FoodTruckTests { @Test(arguments: Condiment.allCases) func refill(condiment: Condiment) { // This function will be invoked serially, once per condiment, because the // containing suite has the .serialized trait. } @Test func startEngine() async throws { // This function will not run while refill(condiment:) is running. One test // must end before the other will start. } }
この特性をパラメータ化されたテスト関数に追加すると、そのテストはそのケースを並列ではなく連続して実行します。パラメータ化されていないテスト関数に適用した場合、この特性は効果がありません。テストスイートに適用した場合、この特性はスイートに含まれるテスト関数とサブスイートを並列ではなく連続して実行します。
この特性は再帰的に適用されます。スイートに適用すると、そのスイートに含まれるパラメータ化されたテストまたはテストスイートも全て連続化されます (それらのスイートに含まれる全てのテストも同様です)。
この特性は、テストの実行を、その仲間のテストや無関係なテストと比較して、影響するものではありません。テストの並列化がグローバルに無効化されている場合 (例えば、swift test コマンドに --no-parallel を渡すなど)、この特性は効果がありません。
static var serialized: ParallelizationTrait
適用されたテストを連続処理化する特性。