テストハーネス モードを実装する

テストハーネス モードは、デバイスやデバイス群のテストを自動化するサードパーティ アプリのデベロッパーを対象として、Android 10 に追加された機能です。この機能を使用すると、Android デバイスのすべてのユーザーデータをワイプし、ADB キーを保持して、初期設定画面をすべてスキップできます。これにより、ユーザーは手動による操作なしで起動直後に UI テストを実行できます。

カスタマイズ

ActivityManager.isRunningInUserTestHarness() を確認することで、デバイスがテストハーネス モードになっているかどうかを判別できます。カスタマイズは最小限に抑えてください。UI テストの中断や手動による操作の必要性が生じる設定画面(キーボード入力や設定ウィザード)のスキップなどにとどめます。

実装

PersistentDataBlockManagerInternal のデフォルト実装は PersistentDataBlockService にあります。テストハーネス モードは TestHarnessModeService に実装されています。

テストハーネス モードのデフォルト実装では、出荷時設定へのリセット保護機能と同じストレージ メカニズムを使用して adb キーを一時的に永続パーティションに格納します。出荷時設定へのリセット保護機能が設定された永続パーティションがテストデバイスにすでに実装されている場合、この機能をサポートするために必要な作業はほとんどありません。

永続パーティションを設定していない OEM の場合、TestHarnessModeService を実行する前に PersistentDataBlockManagerInternal を実装する必要があります。

テストハーネス モードのステータスを確認する

テストハーネス モードが有効になっている場合、ActivityManager.isRunningInUserTestHarness()true を返します。

テストハーネス モードを開始する

テストハーネス モードを有効にすると、デバイスからすべてのデータが消去され、デバイスがテスト用に設定されます。つまり、テストの妨げとなる可能性があるデバイスの機能(自動同期アカウント、パッケージの確認、自動アップデートなど)についてはすべてデフォルトで無効になっていますが、ユーザーは再度有効にできます。

adb コマンドを実行して、テストハーネス モードを有効にします。

adb shell cmd testharness enable