Travis CI を Fastlane と組み合わせて使用し、自動ビルドと夜間の UI Espresso テストを行っています。インストルメンテーション テストでは、gcloud コマンドライン ツールを使用して Firebase Test lab を使用しようとしています。
作業しやすい形式でテスト結果を取得して、内部で Slack に報告できるようにしています。たとえば、いくつのテストが成功または失敗したか、どのテストが失敗したかなどです。
./google-cloud-sdk/bin/gcloud beta firebase test android run \
--type instrumentation \
--app ourapp/app/build/outputs/apk/mock/debug/app-mock-debug-local.apk \
--test ourapp/app/build/outputs/apk/androidTest/mock/debug/ourapp-mock-debug-androidTest.apk \
--device-ids hammerhead \
--os-version-ids 22 \
--locales en \
--orientations portrait \
--project ourappgoogleprojectid \
--timeout 15m
これにより、すべてテストが正常に実行され、Google Cloud Storage バケット内の生の結果への 2 つのリンクがランダムなリンクと次のようなログとともに出力されます。
Raw results will be stored in your GCS bucket at [https://console.developers.google.com/storage/browser/test-lab-vx5ak1y4tt3sw-yrzyhxjh4r1r6/]
13:25:59 Test is Pending
13:26:06 Starting attempt 1
13:26:06 Test is Running
13:26:46 Logging into the device
13:26:53 Installing APK: com.ourcompany.ourapp.debug
13:27:13 Installing APK: com.ourcompany.ourapp.test
13:27:33 Running instrumentation test. Package: com.ourcompany.ourapp.test testrunner: android.support.test.runner.AndroidJUnitRunner orchestrator: false options: []
13:34:34 Instrumentation test has finished
13:34:34 Generating video
13:34:41 Retrieving performance samples
13:35:00 Retrieving test artifacts
13:35:13 Retrieving any crash results
13:35:20 Retrieving logcat
13:35:53 Done. Test time=416 (secs)
13:36:00 Test is Finished
Instrumentation testing complete.
最後に、私が最も興味を持っているものを出力します。
┌─────────┬───────────────────────────┬──────────────────────┐
│ OUTCOME │ TEST_AXIS_VALUE │ TEST_DETAILS │
├─────────┼───────────────────────────┼──────────────────────┤
│ Passed │ hammerhead-22-en-portrait │ 60 test cases passed │
└─────────┴───────────────────────────┴──────────────────────┘
しかし、結果の優れた、実行可能な、迅速な要約を得ることができるものは他にありません。
次の方法しかできないと思います。
grep/awk/sed/出力に表示されるバケット URL は何でも。しかし、その URL にはランダムな ID などがあります。次に、Travis の bash スクリプトから、何らかの方法でそのバケットに xml ファイルをダウンロードしようとします。ただし、すべてのテスト結果の xml は、テストが実行されたデバイスにちなんで名付けられたそれぞれのフォルダーにあります。たとえばhammerhead-22-en-portrait
。簡単なテストの要約を取得するだけでも、このような手間がかかります。必要なのは、上に出力された表の情報だけです。
gcloud
不足しているコマンド オプションはありますか? ドキュメントはひどいです。適切なxmlファイルをすぐにダウンロードするか、適切な情報などで環境変数を設定するオプションがあることを望んでいました.
または、そのテーブルから値を簡単に抽出する方法はありますか?
編集: Android Studio が、自動的にビルドし、apk をアップロードし、Firebase テスト ラボ マトリックスでテストを実行する実行構成のセットアップをサポートしていることを知りました。その後、Android Studio の [実行] タブに、すばらしいテスト レポートが表示されます。ここから、これらのテスト結果を HTML または XML にエクスポートできます。その XML はまさに私が欲しいものです。Android Studioがこれを行うために使用するツール、またはコマンドラインツールを使用して同じことを行う方法を誰かが知っていますか?