XCode 16.3 日本語化計画
テストを実行し、結果を理解することで、プロジェクトのコードが期待どおりに動作するかどうかを判断します。
ソフトウェア開発ワークフローの様々な段階で、テストのサブセットを実行したくなるでしょう。
アクティブなテスト計画内のすべてのテストを実行するには、Xcode で実行するか ([Product (製品)] > [Test (テスト)] を選択)、ターミナルで xcodebuild コマンドを実行するという 2 つのオプションがあります。
Xcode ターゲットのスキームのテスト計画を編集することで、このアクションを実行したときにテストランナーが実行するテストを構成します。詳細については、プロジェクトのビルドスキームのカスタマイズ (Customizing the build schemes for a project) を参照してください。あなたのビルドスキームに複数のテスト計画が含まれている場合は、「Product (製品)」>「Test Plan (テスト計画)」を選択して、実行するテスト計画を選択します。テストナビゲータで、アクティブな計画を表示するには、「View (表示)」>「Navigator (ナビゲータ)」>「Tests (テスト)」を選択します。別のテスト計画または別のビルドスキームを選択すると、テストナビゲータが更新され、その計画が表示されます。計画のアウトラインビューを展開すると、それに含まれるターゲット、スイート、テスト関数、およびパラメータ化されたテストケースが表示されます。無効にした項目、またはスキップするようにマークした項目は淡色表示されます。
テストを実行すると、Xcode はテストナビゲータのテスト計画の隣とアウトラインビューの各項目の隣にステータスアイコンを表示します。
可能な状態は以下のとおりです。
![]() | テストは合格しました。 |
![]() | テストは失敗しました。失敗するはずのテストが失敗しなかったことが原因である可能性もあります。 |
![]() | テストはいくつかの予想通りの失敗で失敗しましたが、予想外の失敗はありませんでした。 |
![]() | Xcode がテストをスキップしました。 |
![]() | マイナス記号 (–) の付いた緑色のアイコンは、テストの結果が混在していることを示します。一部のテスト関数またはパラメーター化されたテストケースは成功しましたが、その他は予想どおりに失敗したか、スキップされました。 |
![]() | マイナス記号 (–) の付いた赤いアイコンは、テストの結果が混在していることを示します。一部のテスト関数またはパラメーター化されたテストケースは失敗しましたが、その他は予想どおりに失敗するか、スキップされました。 |
テストナビゲータで項目をクリックすると、ソースエディタにテストの実装が表示され、特定のテストの失敗やスキップされたテストの詳細情報にアクセスできます。テスト実装の横のガターに同じステータスアイコンが表示されるため、ソースエディタで失敗箇所をあなたは特定しやすくなります。デバッグメッセージの隣にあるダイヤモンドのアイコンをクリックすると展開され、失敗の原因となった条件についてデバッグメッセージの内容を確認できます。
Swift Testing で記述したテスト関数は、期待値マクロに渡す式で使用する変数と、テストランナーがテスト関数に渡す入力パラメータの状態をキャプチャします。これらの値を調べて失敗の原因をさらに理解するには、デバッグメッセージの下部にある「Show (表示)」ボタンをクリックし、「Result (結果)」領域と「Argument (引数)」領域を展開して、期待値式と入力パラメータの状態を確認してください。
テストを実行するたびにテストレポートが生成されます。これらのレポートは、Xcode のレポートナビゲータで「View (表示)」>「Navigator (ナビゲータ)」>「Report (レポート)」を選択し、ビルドスキーム名の下にある「テスト」アクションを選択すると表示されます。
テストレポートのトップレベルには、実行したテストの高レベルの概要が表示されます。重要なパターンの失敗情報やスクリーンショットなどが強調表示されるため、調査をどこから開始すればよいかを判断するのに役立ちます。
さらに詳しい情報は、レポートの追加セクションでご覧いただけます。
Insight (洞察)
複数の構成と実行先にわたる結果を分析中に見つかった一般的な障害パターンと長時間実行テストを報告します。
Coverage (適用範囲)
あなたのテストのコード適用範囲レポート。コード適用範囲の詳細については、あなたのテストでカバーするコードの範囲を決定する をご覧ください。
Tests (テスト)
テスト計画、テストタイプ、テスト関数別に整理されたあなたのテストの結果を表示するアウトラインビュー。
Log (ログ、記録)
アプリとテストのインストールプロセス、起動アクション、テストアクション、コードカバレッジレポートの生成などのテスト後のプロセスについてシステムが生成したログ (記録)。
Build (ビルド)
あなたのターゲットのビルド中にビルドシステムが生成するログを記録します。
ターミナルで xcodebuild を使ってテストを実行すると、コマンドによりセッション結果、コードカバレッジ(有効な場合)、その他のログを含む Xcode テスト結果(.xcresults)バンドルが出力されます。このファイルは Xcode で開いて閲覧したり、あなたの開発チームの他のメンバーと共有したりできます。
Xcode で実行したいテスト関数を含む Swift ファイルに移動します。エディタのガターにある関数宣言の横にあるダイヤモンドアイコンにポインタを移動し、灰色の再生アイコンをクリックします。
または、Xcode テストナビゲータでポインターをテスト関数名の上に移動しテスト関数を見つけ、再生アイコンをクリックします。
Xcode は選択されたテスト関数を実行し、結果を示すアイコンを更新します。
ターミナルで単一のテスト関数を実行するには、xcodebuild を実行し、-only-testing オプションへのパラメータとしてテスト関数の識別子を指定します。テスト関数の識別子は、test_target/test_type/test_function という形式です。
パラメータ化されたテスト関数の隣にある再生アイコンをクリックすると、そのテストのすべてのテストケースが実行されます。実行する特定のテストケースを選択するには、テストナビゲータでテスト関数名の前の展開矢印をクリックし、特定のテストケースの横にあるダイヤモンドアイコンにポインターを移動して、灰色の再生アイコンをクリックします。
パラメータ化をサポートする @Test マクロに 1 つ以上のコレクションを渡すと、マクロは各要素または要素ペアごとにテストケースを生成します。各テストケースは、テストランナーがテスト関数に渡す入力パラメータの一意のセットを表します。1 つ以上の入力でテストが失敗した場合、対応する診断によってどの入力を検査すべきかが示されます。特定のテストケースを選択すると、そのケースの入力のみを使用してテスト関数が実行され、デバッグ時に役立ちます。パラメータ化されたテストの実装の詳細については、パラメータ化されたテストの実装 (Implementing parameterized tests) を参照してください。
共通の型またはスイートで定義されたテスト関数を実行するには、エディターのガター内の型の宣言の横にあるダイヤモンドアイコンにポインターを移動し、灰色の再生アイコンをクリックします。Swift Testing では、テストスイート とは、1 つ以上のテスト関数の定義を含む任意の型を指します。
テストスイートをネストし、必要に応じて @Suite マクロで注釈を付けることで、スイートに含まれるテスト関数に関する追加情報を提供できます。詳細については、スイートの型によるテスト関数の整理 をご覧ください。
XCTest では、あなたのすべてのテスト関数を XCTestCase のサブクラスに実装します。詳細については、テストケースとテストメソッドの定義 (Defining Test Cases and Test Methods) を参照してください。
Xcode は選択した項目に含まれるテスト関数を実行し、結果を示すアイコンを更新します。
ターミナルでテストケース内のテスト関数を実行するには、xcodebuild を実行し、-only-testing オプションへのパラメータとしてスイートの識別子を指定します。スイートの識別子は test_target/test_suite という形式です。
Swift Testing では、tags(_:) の特性を使用して、関連するテストのグループに注釈を付けることができます。これらの追加グループは、テストナビゲータの「Tag (タグ)」セクションのアウトラインビューで確認できます。テストナビゲータ上部のタグアイコンをクリックすると、タグ別に整理されたテスト関数が表示されます。タグの宣言とテストへのタグの追加の詳細については、テストへのタグの追加 (Adding tags to tests) を参照してください。
タグに関連したすべてのテスト関数、またはタググループ内の単一のテスト関数を実行するには、タグまたはテスト関数の上にポインターを移動し、灰色の再生アイコンをクリックします。
テスト関数またはテストスイートの型の隣にあるダイヤモンドアイコンを Ctrl + クリックし、「繰り返し実行」を選択します。表示されるパネルで、テストの実行を停止するタイミングを選択します。以下のオプションがあります。
失敗後に停止
最初の失敗が発生するか、最大繰り返し回数に達するまでテストを実行します。
成功後に停止
テストが初めて成功するか、最大繰り返し回数に達するまでテストを実行します。
最大繰り返し回数後に停止
結果に関係なく、指定された回数だけテストを実行します。
テストを繰り返す最大回数、テストが失敗した場合に実行を一時停止するかどうか、そして繰り返しごとにテストランナーを再起動するかどうかを選択します。最後に「Run (実行)」をクリックすると、テストが繰り返し実行されます。
ターミナルでテストを繰り返し実行するには、-test-repetitions オプションを使用して繰り返し回数を指定します。オプションで、テストを成功または失敗するまで繰り返すかどうか、繰り返しごとにテストランナーを再起動するかどうかも指定します。