2012-08-29 49 views
0

我正在開發Android自動測試。我們希望有一個與MSBuild.exe集成的bat文件。我創建了所有的測試用例,但是我無法使bat文件正常工作。創建一個bat文件以從命令行運行Android自動測試(Robotium)

目前我的bat文件看起來像:

call android delete avd -n %avdName% 
call android create avd -n %avdName% -t 8 --skin WVGA800 --force 
call emulator -avd %avdName% 

call adb install %batPath%\..\%projectName%\bin\release.apk 
call adb install %batPath%\..\%testProjectName%\bin\release.apk 
call adb shell am instrument -w com.example.mobiletest/android.test.InstrumentationTestRunner 

的想法是,在每次運行批處理文件創建一個新的AVD,啓動它,上傳APK及運行測試。但是它不會等待unitl的AVD完成啓動,並試圖上傳的APK,這讓我這個錯誤:

Error: Could not access the Package Manager. Is the system running?

我怎麼能告訴bat文件等到AVD全面推出?

+0

我知道的唯一解決方法是,在您的批處理文件中,首先發出AVD lanuch命令,等待一段時間(如30秒),然後發出adb install命令。這也是android-maven-plugin正確使用它來實現其獨立目標android:emulator-start之一的方式。 – yorkw

+0

@ yorkw感謝您的幫助。我也想過這樣做。在bat文件中有沒有好的睡眠方法?我發現一些解決方法,如使用ping聽起來不太好。 –

回答

0

ADB等待換設備安裝%batPath%.. \%PROJECTNAME%\ BIN \ release.apk

+0

請仔細閱讀[手冊](http://developer.android.com/tools/help/adb.html#commandsummary),它只會等到設備連接,而不是操作系統完全引導,使用它與安裝將導致錯誤。 – yorkw

+0

在「adb wait-for-device」之後,您可能需要添加一秒左右的延遲時間,但應該可以在聯機後立即安裝應用程序。 –

0

最後,我用這樣的

echo waiting... 
ping 127.0.0.1 -n 100 -w 1000 > NUL 
echo ...done 

它等待100破解幾秒鐘後繼續。 AVD應該在100秒內運行。

相關問題