Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建一个bat文件,从命令行运行Android自动测试(Robotium)_Android_Batch File_Automated Tests_Ui Automation_Robotium - Fatal编程技术网

创建一个bat文件,从命令行运行Android自动测试(Robotium)

创建一个bat文件,从命令行运行Android自动测试(Robotium),android,batch-file,automated-tests,ui-automation,robotium,Android,Batch File,Automated Tests,Ui Automation,Robotium,我正在进行Android自动测试。我们希望有一个与MSBuild.exe集成的bat文件。我已经创建了所有的测试用例,但是,我无法使bat文件正常工作 当前我的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%

我正在进行Android自动测试。我们希望有一个与MSBuild.exe集成的bat文件。我已经创建了所有的测试用例,但是,我无法使bat文件正常工作

当前我的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
其想法是,每次运行bat文件时,创建一个新的AVD,启动它,上传APK并运行测试。但是,它没有等到AVD完成启动并尝试上载APK时,这会导致以下错误:

错误:无法访问包管理器。系统正在运行吗


我如何告诉bat文件等待AVD完全启动?

adb等待设备安装%batPath%..\%projectName%\bin\release.apk

最后我使用了这样一种破解方法

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

它等待100秒后继续。AVD应该在100秒内启动并运行。

仔细阅读,它只会等待设备连接,而不是操作系统完全启动,将其与安装一起使用将导致错误。您可能需要在“adb等待设备”之后添加一秒左右的延迟,但它应该可以在上线后很快安装应用程序。我知道的唯一解决方法是,在批处理文件中,首先发出avdlanuch命令,等待一段时间(30秒),然后发出adb install命令。这也是android maven插件目前用来实现其独立目标之一android:emulator start的方式。@yorkw感谢您的帮助。我也想过这样做。在bat文件中有没有好的睡眠方法?我发现一些变通方法,比如使用ping听起来不太好。