GitHub

Xcodeテストの実行

Bitrise上でXcodeテストを実行するには、ご自身のプロジェクト内に定義されたテストターゲットを持つ必要があります。Xcodeテストを実行し、結果を確認するには2つのステップが必要になります。

コード署名ファイル

Xcodeテストの実行とBitriseへの結果のデプロイについては、コード署名ファイルは必要ありません!

Xcode Test for iOSステップは事前に定義されたXcodeテストを実行します。そのステップにはデフォルトの構成があり、テストが正確に書かれた場合に動きます。Xcodeでも、同じ構成オプションを見つけることができます。

Deploy to Bitrise.ioは以下のものをビルドのLogsApps & Artifacts タブへデプロイします:

また、コードカバレッジファイルの生成や圧縮されたzipファイルとしてテスト結果のエクスポートも可能です。

Bitrise上でのXcodeテスト構成

Xcode Test for iOSステップのデフォルトインプット値は、テストが正確に書かれていれば動作します。ただ、Bitriseは全てのインプットが正しい値であるか確認することをおすすめします。そうすることにより、ステップは正しく動きます。

ビルドを実行する前に、以下のXcode Test for iOSに必要なインプットを確認してください。これらのインプットはステップが実行するテストの種類を決定します。

Headless mode

Xcode 9以上のバージョンでは、テストはデフォルトによりヘッドレスモードで実行されるようになっています:これはシミュレータがバックグラウンドでのみ実行される仕組みです。変更するには、ステップのDebugインプットグループに進んでRun the test in headless mode?インプット値をnoにセットしてください。けれどもこのオプションを使うとテストに時間がかかってしまいます。

xcprettyアウトプットツールでは並列テストのサポートを行っておりません。プロジェクト内に並列テストが有効化されている場合、ステップのDebugインプットグループに進み、Output toolのインプット値をxcodebuildにセットしてください。

コードカバレッジファイルの生成

デフォルトでは、Xcode Test for iOSステップはコードカバレッジファイルの生成を行いません。もしそれが必要な場合、簡単に変更ができます:Generate code coverage files?yesとセットするだけです。

これは2つの追加のフラッグをxcodebuildコマンドにセットします:

xcodebuild GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES

ビルドがうまく実行されたら、コードカバレッジファイルは結果の中に含まれるようになります。

UIテストアーティファクトのエクスポート

You can export the attachments of your UITest into the BITRISE_DEPLOY_DIR directory. These attachments include screenshots taken during the UI test, as well as any other artifacts that might have been generated. They are exported as a compressed zip file.

By default, the Xcode Test for iOS Step does not export artifacts of the UITest. If you want to export them, set the Export UITest Artifacts input of the Xcode Test for iOS Step to true.

UIテストの添付物をBITRISE_DEPLOY_DIR ディレクトリにエクスポートすることができます。その添付物はUIテスト中に撮影されたスクリーンショットや、生成されたかもしれない他のアーティファクトも含みます。それらは圧縮されたzipファイルとしてエクスポートされます。

デフォルトでは、Xcode Test for iOSステップはUIテストのアーティファクトはエクスポートしません。エクスポートしたいのであれば、Xcode Test for iOSステップのExport UITest ArtifactsインプットをTrueにセットしてください。