【问题标题】:Is it possible to run Espresso UI tests on -no-window emulator?是否可以在 -no-window 模拟器上运行 Espresso UI 测试?
【发布时间】:2017-07-11 09:12:15
【问题描述】:
我正在尝试在 CI(在本例中为 Jenkins)服务器上运行我的 Espresso 测试。我无法访问此处的 GUI,因此我决定的方法是在 Android Emulator 上使用 -no-window 参数。模拟器启动正常但是我在安装过程中收到Error: Could not access the Package Manager. Is the system running? 错误。所以正如我上面提到的,有什么方法可以在非 gui 机器上运行 Espresso 测试?我知道有适用于 Android 模拟器的 Jenkins 插件,但它似乎已经过时了,我相信最后一次更新是从 2015 年开始的......谢谢!
【问题讨论】:
标签:
android
jenkins
android-emulator
【解决方案1】:
我在 docker 容器中的模拟器上运行 espresso 测试时遇到了同样的问题。当我尝试运行 Activity 时出现问题。
仪器单元测试正在工作。
当我从 x86_64 图像切换到 x86 时,测试通过。我使用以下命令运行模拟器:emulator -avd Nexus6P -netdelay none -netspeed full -no-window -no-audio -gpu off
【解决方案2】:
根据互联网(例如SO),如果模拟器未完全启动或设备被锁定,您将收到此错误消息。
你可以尝试两件事:
-
向设备发送解锁keyevent(首先检查设备是否在线)
./adb devices
./adb shell input keyevent 82
-
等到设备完全启动
./adb shell getprop init.svc.bootanim
// You should get "1" when ready
我目前遇到了完全相同的问题,遗憾的是上述解决方案都不适用于我。我想识别问题的最佳方法是使用 GUI 运行模拟器以查看它在做什么,但我无权访问服务器。
如果你能解决你的问题,请告诉我。
编辑:
在调用之前也尝试睡眠几分钟(如果你的服务器不是那么快,大约 10 分钟)
./adb install 或 ./gradlew connectedAndroidTest
编辑#2:
我的模拟器终于可以工作了,但必须使用 x86 图像。仍然不知道为什么手臂不工作..