2015-02-05 4 views
0

저는 avd 장치를 시작하고 calabash-android를 사용하여 테스트를 실행하는 jenkins 작업을 실행하고 있습니다.avd가 완전히 시작된 시점을 어떻게 알 수 있습니까?

이 장치가 완전히 시작되면 장치 연결 오류가 발생하지 않고 테스트를 시작할 수 있음을 어떻게 알 수 있습니까?

나는
adb wait-for-device 

을 시도하지만 ADB docs

에 따르면 "이 명령은 전체 시스템이 완전히 부팅 될 때까지 ADB는 기다릴 발생하지 않습니다 때문이 작동하지 않습니다. 이런 이유로 완전히 부팅 된 시스템을 필요로하는 다른 명령에는 추가하지 말아야합니다. "

지금 나는 힘든 잠을 잤는데,이 스크립트를 작성하는 더 좋은 방법은 무엇입니까?

감사합니다.

답변

0

나는 adb를 통해 테스트를 시작한다고 가정합니다. 그렇다면, adb는 디바이스 대기 상태 (디바이스가 사용 가능할 때까지)를 지원합니다 (온라인).

adb wait-for-device 
0

그래, 알아 냈어. 거기에,이 스크립트를 묶어하지 않도록 출력이 모두 TEXTFILE로 펌핑 : 내가 찾던 명령은 젠킨스와 AVD 도구를 사용하는 전체 스크립트는이 (주처럼 보이는

adb shell getprop sys.boot_completed 

했다 아마 더 좋은 방법은 시작 심가

$ANDROID_HOME/tools/emulator -avd phone -gpu on -memory 2500 1>~/test.txt 2>&1 & 

대기 심 완료하기 위해이 부분)

시작을 처리하는

A=$($ANDROID_HOME/platform-tools/adb shell getprop sys.boot_completed | tr -d '\r') 
while [ "$A" != "1" ]; do 
sleep 2 
A=$($ANDROID_HOME/platform-tools/adb shell getprop sys.boot_completed | tr -d '\r') 
done 

잠금 해제 심

$ANDROID_HOME/platform-tools/adb shell input keyevent 82 1>~/test.txt 2>&1 & 
+0

당신은 때때로 당신이 어떤의 APK를 설치하기 전에 시작이 완료 될 때까지 "android.process.acore"프로세스에 대한 기다려야 할 수도, 그렇지 않으면 그냥 것이다. Jenkins 용 Android Emulator Plugin에는 다음 릴리스에서이 기능이 있어야합니다. –