androidtestrunnerツール
はじめに
androidtestrunner
ツールは Android デバイスやエミュレータ上で Qt テストを実行します。APK のインストール、テストの実行、結果の取得など、テストの実行に必要なステップを自動化します。
androidtestrunner
を使用する前に、CMake または qmake で Qt テストプロジェクトを構成していることを確認してください。
どのように動作するか
- まず、APK build コマンドを実行し、テストに必要な APK を生成します。
- 続いて、ターゲットデバイスにテストアプリをインストールし、テストアプリを起動してテストプロセスを開始します。
- テスト結果はデバイス上のアプリのデータ・ディレクトリに書き込まれ、包括的なテスト出力が確実に取得される。
- テストが終了すると、ランナーは結果ファイルの横に終了コードファイルを書き込みます。
- この段階で、
androidtestrunner
はこれらの結果ファイルをデバイスから取得し、失敗がないか終了コードを調べます。 - 問題が検出された場合、直ちにアプリの logcat ログを表示し、潜在的なクラッシュ・スタック・トレースも表示する。さらに、テスト実行中にアプリケーションが応答しない(ANR)イベントが発生した場合は、ログをキャプチャして報告します。
統合エクスペリエンスを向上させるために、テスト・ランナーは、QT または QTEST 環境変数をテスト・ランナー・プロセスのホスト環境からアプリに伝播し、一貫性とシームレスなテスト・ワークフローを保証します。
テストラッパーでテストを実行する
環境変数を渡し、testAssets
テストケースのみを実行しながら、特定のエミュレータインスタンス上でtst_android
テストを実行する例を示します:
ANDROID_SERIAL=emulator-5554 QT_DEBUG_PLUGINS=1 ./tst_android testAssets
結果の取得
デフォルトでは、また stdout テスト出力が明示的に無効化されていない場合は、テストの実行中にテスト結果がホストに出力されます。テストの実行後、明示的に要求されたテストファイルは、それぞれのフォーマットで指定された出力パスに取り込まれます。
Qt Test Framework の包括的な詳細については、Qt Test Overview を参照。
使用方法
androidtestrunner
を実行するための基本構文は以下のとおりである:
androidtestrunner [ARGUMENTS] -- [TESTARGS]
特定のデバイス/エミュレータ上でテストを実行するには、adb
環境変数ANDROID_SERIAL
またはANDROID_DEVICE_SERIAL
を使用する。
必須引数
テストランナーは、常に以下の引数が渡されることを想定しています:
--path <build-path>
:Android Gradleパッケージがビルドされるパス。一般的にはandroid-build-testname
。--make <build-command>
:テストのAPKをビルドするために使用されるコマンド、例えば、cmake --build <build-dir> --target <target>_make_apk
。注意: この引数を引用符で囲んで渡すと、テストランナーの複数の引数としてではなく、
--make
の引数の値として扱われます。--apk <apk-path>
:ビルドコマンドによって生成され、デバイスにインストールされるテスト用 APK へのパス。
オプションの引数
以下のオプション引数を渡すこともできます:
--adb <adb-path>
:カスタム ADB コマンド・パスを指定します。デフォルトは、システムの$PATH
にあるadb
パスです。--activity <activity-name>
:実行するカスタム・アクティビティを指定します。デフォルトは、AndroidManifest.xml
で定義されている最初のアクティビティです。--timeout <seconds>
:テスト実行のタイムアウトを設定します。デフォルトは600秒(10分)です。--skip-install-root
:makeコマンドにINSTALL_ROOTを付加しないようにし、主にqmake
。--show-logcat
:テストの失敗に関係なく、logcat出力を標準出力に出力する。ログは失敗した場合に出力され、クラッシュ・スタックトレースや ANR イベントを含むことができます。--ndk-stack <command-path>
:クラッシュ・スタック・トレースをシンボル化するためのndk-stackツールへのパスを指定します。デフォルトは$ANDROID_NDK_ROOT
にあるツールパスです。-- <arguments>
:ダッシュ以降をテスト引数として渡します。--verbose
:冗長出力を表示します。--help
:ヘルプ情報を表示します。
使用例
以下は、tst_android
テストを実行し、testAssets
テストケースのみを実行する例である:
androidtestrunner \ --path ~/tst_android/build/android-build-tst_openssl \ --make "cmake --build ~/tst_android/build --target apk" \ --apk ~/tst_android/build/android-build-tst_openssl/tst_openssl.apk \ --skip-install-root \ testAssets
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.