前書き
現在私が勤めているチームでは JUnit でのテストコードを書くようになっているのですが
影響範囲の広い修正などはテストや検証に抜け漏れがあるかもしれないという不安がありました。
しかもUIテストは検証の時以外は特にやってない状態だったので全体的&定期的にテストしてくれるツールを導入したい…
(ついでにクラッシュも見つけ出して欲しい気持ち)
そこで Firebase Test Lab の Robo test を導入することになりました!
概念や説明などは 公式ドキュメントにとても細かく書いております。
とりあえず実行してみる
「gcloud コマンドラインから Firebase Test Lab を使ってみる」に沿ってやってみました
まずrunさせるapkを作るためにビルドします
$ ./gradlew assembleStaging
ビルドが終わったら
以下のコマンドで実行できますが
他にもいろんな端末や os-version など device で指定できます。(複数可能)
gcloud firebase test android run \
--type robo \
--app app/build/outputs/apk/staging/app-staging.apk \
--device model=Nexus7,version=21,locale=jp,orientation=portrait \
--device model=Nexus5,version=19,locale=jp,orientation=landscape \
--timeout 60s
結果はこんな感じです
詳細は Firebase コンソルの TestLab で確認ができます。(CLIにもリンクが表示されるので押せば遷移できます)
Firebase のコンソルからはログ、スクショ、動画などテストした過程が見えるので便利だと思いました。
まとめ
定期実行については長くなりそうで記述してないのですが(ごめんなさい)
環境としては gcloud コマンドのスクリプトを作成し、 CI の cron を使って実行しております。
(workflow として robo test を加えて毎朝指定してる時間にアプリをビルドして、テストを回すように...)
UIテストと言っても実機で検証ぐらいでしか確認してないので
この機会にUIテストのできてないプロジェクトなどには Robo test は簡単に試せていいのではないかなっと思いました!