プラットフォーム向けの GoogleTest(GTest、「ネイティブ テスト」とも呼ばれます)は通常、下位レベルの HAL にアクセスするか、さまざまなシステム サービスに対して raw IPC を実行します。したがって、テスト方法は通常、テスト対象のサービスと密接に関連しています。
継続的なテスト インフラストラクチャと統合するには、GTest フレームワークを使用して GTest を構築します。
例
プラットフォーム ソースの GTest の例を次に示します。
ステップの概要
- GTest モジュールのセットアップ例に従います。
- GTest の依存関係を自動的に含めるには、テスト モジュールの構成で
BUILD_NATIVE_TEST
ビルドルールを使用します。 - シンプルおよび複雑なオプションの例に沿ってテスト構成を作成します。
増分ビルドの場合は
mmm
、フルビルドの場合はmma
を使用して、テスト モジュールをビルドします。make hwui_unit_tests -j
Atest を使用してローカルでテストを実行します。
atest hwui_unit_tests
GTest に引数を追加することもできます。次の引数は特に有用です。* native-test-flag
は、GTest のシェルコマンドに渡す追加のフラグ値を指定します。* native-test-timeout
は、テストのタイムアウト値をマイクロ秒単位で指定します。
次のサンプルコードでは、これらの引数の両方を使用しています。
<pre class="devsite-terminal devsite-click-to-copy">
atest <var>test-name</var> -- --module-arg <var>test-name</var>:native-test-flag:"\"<var>argument1</var> <var>argument2</var>\"" \
--module-arg <var>test-name</var>:native-test-timeout:60000
</pre>
Trade Federation テストハーネスでテストを実行します。
make tradefed-all -j tradefed.sh run template/local_min --template:map test=hwui_unit_tests
手動でインストールして実行するには:
生成されたテストバイナリをデバイスにプッシュします。
adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \ /data/nativetest/hwui_unit_tests/hwui_unit_tests
GTest を起動し、デバイスでテストバイナリを起動してテストを実行します。
adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests
テスト実行のカスタマイズの詳細については、テストバイナリに
--help
パラメータを追加します。パラメータの詳細については、GTest の詳細ガイドをご覧ください。