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


좋은 웹페이지 즐겨찾기