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