Android connectedCheck에서 실행 기기 지정

곤란한 일



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의 결과 표시가 되어 있었습니다.
조금 감동했습니다.


좋은 웹페이지 즐겨찾기