GoogleTest

プラットフォーム用のGoogleTest(GTest、「ネイティブテスト」とも呼ばれる)は、通常、低レベルのHALにアクセスするか、さまざまなシステムサービスに対して生のIPCを実行します。このため、テストアプローチは通常、テスト対象のサービスと緊密に連携しています。

継続的テストインフラストラクチャと統合するには、 GTestフレームワークを使用してGTestを構築します。

プラットフォームソースのGTestの例を次に示します。

手順の概要

  1. GTestモジュールのセットアップ例に従ってください。
  2. GTestの依存関係を自動的に含めるには、テストモジュールの構成でBUILD_NATIVE_TESTビルドルールを使用します。
  3. 単純なオプションと複雑なオプションの例に従って、テスト構成を記述します。
  4. インクリメンタルビルドの場合はmmm 、フルビルドの場合はmmaを使用してテストモジュールをビルドします。

    make hwui_unit_tests -j
    
  5. 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>
  1. TradeFederationテストハーネスを使用してテストを実行します。

    make tradefed-all -j
    tradefed.sh run template/local_min --template:map test=hwui_unit_tests
    
  2. 手動でインストールして実行します。

    1. 生成されたテストバイナリをデバイスにプッシュします。

      adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \
        /data/nativetest/hwui_unit_tests/hwui_unit_tests
      
    2. GTestを起動し、デバイスでテストバイナリを呼び出してテストを実行します。

      adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests
      

    テスト実行のカスタマイズの詳細については、テストバイナリに--helpパラメーターを追加してください。パラメータの詳細については、 GTestアドバンストガイドを参照してください。