XCode 16.3 日本語化計画
テストが失敗するまでの実行時間に制限を設定します。
一部のテストは、実行速度が遅くなる可能性があります。完了までに多大なシステムリソースを必要とする場合や、サーバーからダウンロードしたデータに依存する場合、あるいは外部要因に依存する場合などです。
テストが無期限にハングしたり、システムリソースを過剰に消費して効率的に完了できない場合は、テストに時間制限を設定することを検討してください。これにより、実行時間が長すぎる場合は失敗としてマークされます。上限値として timeLimit(_:) 特性を使用して下さい。
@Test(.timeLimit(.minutes(60)) func serve100CustomersInOneHour() async { for _ in 0 ..< 100 { let customer = await Customer.next() await customer.order() ... } }
上記のテスト関数の実行に 1 時間 (60 x 60 秒) 以上かかる場合、実行中のタスクは cancel され、問題の種類 Issue.Kind.timeLimitExceeded(timeLimitComponents:) でテストは失敗します。
テストライブラリは、パフォーマンス上の理由やテスト実行に十分な時間を確保するために、指定された時間制限を調整する場合があります。具体的には、テストには(デフォルトで)1 分の粒度が適用されます。また、テストライブラリでは、適用されている時間制限特性をオーバーライドする、テストごとの最大時間制限を構成することもできます。
テストスイートに時間制限を適用すると、そのスイート内のすべてのテスト関数と子テストスイートに再帰的に適用されます。
パラメーター化されたテスト関数に時間制限を適用すると、各呼び出しに 個別に 適用されるため、一部の引数のみが失敗の原因となった場合、成功した引数も誤って失敗としてマークされることはありません。
個々のテストを実行する前に条件に応じて有効または無効にします。
false を返す場合にテストを無効にする条件特性を構築します。
static func enabled(Comment?, sourceLocation: SourceLocation, () async throws -> Bool) -> Self
false を返す場合にテストを無効にする条件特性を構築します。
static func disabled(Comment?, sourceLocation: SourceLocation) -> Self
テストを無条件に無効にする条件特性を構築します。
その値が true の場合にテストを無効にする条件特性を構築します。
static func disabled(Comment?, sourceLocation: SourceLocation, () async throws -> Bool) -> Self
その値が true の場合にテストを無効にする条件特性を構築します。
static func timeLimit(TimeLimitTrait.Duration) -> Self
テストの実行時間が長すぎる場合にタイムアウトする時間制限特性を構築します。