![見出し画像](https://assets.st-note.com/production/uploads/images/104817404/rectangle_large_type_2_7ee019a2aac54fb112dce7e3dd59e8cc.png?width=1200)
Xcode14.3のTestingの紹介
Xcode14.3がリリースされていますが、少しではあるもののTestingが追加されていたので軽く紹介します。
なお、いらすとやで「すくない」で出た画像を設定しております。
最近だとWWDC前のこの時期のリリースでTestingがある程度、追加されてたりするのですが今回はそこまで多くないようです。
このXcode14.3からmacOS Venturaが必須となっています。
New Features
今回追加されたのは次の2つです。
1 Test Planが新規プロジェクト作成時のデフォルト化
Test PlansはXcode11から追加された機能です。
参考
テスト実行時の各種設定ができるものですが、今まではデフォルトでは利用できる形になっておらず、次のように新規プロジェクトを作成して「Edit Scheme」を選択すると次のように表示されていました。
![](https://assets.st-note.com/img/1683326446714-lwNaWa84VH.png)
Xcode14.3から新規プロジェクトを作成して「Edit Scheme」を選択すると次のようになっています。
![](https://assets.st-note.com/img/1683326118747-hJ1yTRNQSa.png?width=1200)
Test Plansは便利だと思う反面、活用事例がそこまで多くな印象(あくまで印象であってがっつり使っているところもあるとは思っています)があるのでこれを機会にいろいろと活用事例が増えると嬉しいなとは思います。
2 XCTestCase.waitのtimeout引数がオプション化
テストケースでwaitさせる機会がありますが、そのときに利用するwaitには待ち時間を指定するtimeout引数があります。
次のように定義されています。
@_unavailableFromAsync(message: "Use await fulfillment(of:timeout:enforceOrder:) instead")
func wait(for expectations: [XCTestExpectation],
timeout seconds: TimeInterval)
Xcode14.3からwaitのtimeout引数がオプションになりました。
結果として次が追加されています。
@_unavailableFromAsync(message: "Use await fulfillment(of:timeout:enforceOrder:) instead")
func wait(for expectations: [XCTestExpectation])
timeout引数を指定しない場合、テスト全体がタイムアウトするまで待機しつづけます。
実行時間という意味での蛇足ですが、Test Plansの「Test Execution」の項目で「Test Timeouts」という設定が追加されています。
これを「On」にするとテストの実行時間に制限をかけることができます。