プラットフォーム用のGoogleTest(GTest、「ネイティブテスト」とも呼ばれる)は、通常、低レベルのHALにアクセスするか、さまざまなシステムサービスに対して生の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>
TradeFederationテストハーネスを使用してテストを実行します。
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アドバンストガイドを参照してください。