LoginSignup
0
1

More than 3 years have passed since last update.

AndroidのconnectedCheckで実行デバイスを指定する

Last updated at Posted at 2021-04-22

困っていたこと

gradleのコマンドでInstrumentationテストを実行する際、複数の実機/エミュレーターが接続されているとテストが全ての端末で同時に実行されてしまう。

$ ./gradlew testApp:connectedCheck
$ (省略)
Starting 32 tests on Pixel_2_API_28(AVD) - 9
Starting 32 tests on SO-03J - 8.0.0

これはこれで、Matrixテストになっていいかも知れないですが、どれか特定の端末でだけ実行したい場合の方が多いのではないかと思います。
その度に接続を外したりエミュレーターを落としてその後また必要になったら再起動したりするのも面倒ですよね。

解決策

ANDROID_SERIAL環境変数を使う。

(1)adb devicesでデバイスリストを表示

例えば、実機1台とエミュレーター1台をそれぞれ接続、起動しているとします。

$ adb devices
List of devices attached
XXXXXXX     device
emulator-5554   device

(2)環境変数を指定してからgradleコマンドを実行する

リストされた端末のうち、エミュレーターを使いたい場合の例。

$ export ANDROID_SERIAL=emulator-5554
$ ./gradlew testApp:connectedCheck

環境変数は同じターミナルから実行し続ける限りは有効なので、その後のコマンドでも同じ端末が選択されます。

実機の方を使いたい場合は、"XXXXXX"という方を指定すれば良いです。

参考ページ

おまけ

複数端末でテストが実行されたときに、テストレポートはどうなっているのだろうと確認したら、ちゃんとMatrixの結果表示になっていました。
ちょっと感動しました。

test_matrix_report.png
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1