1
1

More than 3 years have passed since last update.

BitriseでもFlankを使ってFirebase Test LabでUITestしたい

Last updated at Posted at 2020-03-09

about

テストランナーFlankを使おうpart2。
BitriseでFlankを使ってiOSアプリのUITestを実行する方法です。

Bitriseで使う前にローカル環境で試したい方は以下の記事を参考にしていただければと思います。
Flankの使い方の基本的な事項もこちらで触れています。
iOSでFlankを使ってFirebase Test LabでUITest

BitriseにFlankのステップが公開されているのでこちらを利用します。
(Script書くのと手間は変わらないけれど)

環境

  • Bitrise Stack Xcode 11.3.x, on macOS 10.14.6 (Mojave)
  • Bitrise Flank Step v0.1.0

手順

ソースコード側の設定

リポジトリの設定

Bitriseから読み込む為にリポジトリにFlankのymlを含めます。
ここではflank.ios.yml/.flank/flank.ios.ymlに配置しました。
ディレクトリが増えるのでそのうち/.bitrise以下に置きたい気持ちもありますね。

flank.ios.ymlファイルの設定

ここでの設定項目は以下です。

1. results-dir:

Firebase Storageのディレクトリを指定します。
予め作らなくても自動で生成されます。

2. record-video:

trueでUITestの録画機能がONになりvideo.mp4ファイルが生成されます。

3. timeout:

タイムアウトを設定します。
デフォルトは15分ですが、UITestは待ち時間も多いので最大値の30分にしておいて良いと思います。

4. test:

テストアプリをzipでアーカイブしたファイルへのパスです。

$BITRISE_TEST_BUNDLE_ZIP_PATHを指定します。

こちらは後述する[BETA] Xcode Build for testing for iOSステップで生成される環境変数です。

5. xctestrun-file:

XCTestRunファイルへのパスです。
$BITRISE_XCTESTRUN_FILE_PATHを指定します。

こちらも[BETA] Xcode Build for testing for iOSステップで生成される環境変数です。

yml完成

出来上がったymlファイルは、コメントアウトの行を除くと以下のようになります。

gcloud:
  results-dir: flank-uitest
  record-video: true
  timeout: 30m
  test: $BITRISE_TEST_BUNDLE_ZIP_PATH
  xctestrun-file: $BITRISE_XCTESTRUN_FILE_PATH
flank:

汎用的な変数なので、環境問わずこちらで良いかと思います。

Bitrise側の設定

Env Vars

Google Credentials JSONを入れる環境変数です。

ない方は以下から作成できます。p12とjsonが選べる場合はjson形式でokです。
https://console.cloud.google.com/apis/credentials/serviceaccountkey

storageへ書き込む権限が必要です。

ここでは以下のファイルがダウンロードされました。
kanari3-develop-ios-55a55aaa55aa.json

こちらをエディタで開いてBitirseのSecretタブの環境変数にコピペします。

env_json.png

ここではGOOGLE_SERVICE_ACCOUNT_JSONというKEYで登録しました。

※ 私はJSONをCodeSigningタブのGENERIC FILE STORAGEに登録しようとして3時間無駄にしました…

まるっと貼り付けます。
まるっと貼り付けるとはどういうことかというと。。。

env_json_detail.png

こういうことです。Private Keyなど平文なので「Make it protected」化推奨。

Workflowの追加

UITestを実行する最低限のワークフローを組みました。
私は共通処理をまとめていますが、試しやすいように組んもらえればOKです。

Pod installなど、ビルド環境が整った後のステップに
[BETA] Xcode Build for testing for iOSFlankを追加します。

Bitrise Workflow.png

Scriptステップは不要ですが、環境変数など気になる方はDebug用に入れてもよいかと思います。

「[BETA] Xcode Build for testing for iOS」ステップの設定

「Scheme name」の値がデフォルトでは$BITRISE_SCHEMEですが、基本UITest用のSchemeがあると思うので指定してください。
私は$BITRISE_UITEST_SCHEMEという環境変数を用意してEnvにスキーム名を入れています。

Flankステップの設定

このような設定項目があると思うので見ていきます。

Bitrise

Google Service Account JSON

先程作成したSecretの環境変数を入れます。
Enter valueを選択すると「Select secret variable」のボタンが表示されるので、そこを選択してリストを表示します。
「Choose Secret Env Var」の一覧から、先程作成したGOOGLE_SERVICE_ACCOUNT_JSONのKEYを探して選択すればOKです。

Config Path

flank.ios.ymlへのパスです。
ソースコード側で.flank/flank.ios.ymlに配置したので、BitriseのVagrant上だと以下になります。
/Users/vagrant/git/.flank/flank.ios.yml

Bitrise Build

ビルドすると特別なことはなく終了します。

flank_result.png

ログの見方は以下と同じなので割愛しますが、テストレポートへのリンクが出力されます。
iOSでFlankを使ってFirebase Test LabでUITest - ビルドしたFlankのjarを実行

おわり

次はUITestの並列実行について触れたいと思います。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1