テストハーネス モードは、デバイスやデバイス群のテストを自動化するサードパーティ製アプリのデベロッパーを対象として、Android 10 に追加された機能です。この機能を使用すると、Android デバイスのすべてのユーザーデータをワイプし、ADB キーを保持して、初期設定画面をすべてスキップできます。これにより、ユーザーは手動による操作なしで起動直後に UI テストを実行できます。
カスタマイズ
ActivityManager.isRunningInUserTestHarness()
を確認することで、デバイスがテストハーネス モードになっているかどうかを判別できます。カスタマイズは最小限に抑えてください。UI テストの中断や手動による操作の必要性が生じる設定画面(キーボード入力や設定ウィザード)のスキップなどにとどめます。
実装
PersistentDataBlockManagerInternal
のデフォルト実装は PersistentDataBlockService
にあります。テストハーネス モードは TestHarnessModeService
内で実装されています。
テストハーネス モードのデフォルト実装では、Factory Reset Protection と同じストレージ機構を使用して ADB キーを一時的に永続パーティションに格納します。テストデバイスに Factory Reset Protection が設定されている永続パーティションがすでにある場合、この機能をサポートするために必要な作業はほとんどありません。
永続パーティションを設定していない OEM の場合、TestHarnessModeService
を実行するには PersistentDataBlockManagerInternal
を実装する必要があります。
テストハーネス モードのステータスの確認
テストハーネス モードが有効になっている場合、ActivityManager.isRunningInUserTestHarness()
は true
を返します。
テストハーネス モードの実行
テストハーネス モードを有効にすると、デバイスからすべてのデータが消去され、デバイスがテスト用に設定されます。つまり、デバイスのテストの妨げとなる可能性がある部分(自動同期アカウント、パッケージの確認、自動更新など)についてはすべてデフォルトで無効になりますが、ユーザーによって再度有効にできます。
adb
コマンドを実行して、テストハーネス モードを有効にします。
adb shell cmd testharness enable