我正在为我的Android应用程序设置一个Jenkins节点(在Mac OS X上)运行检测测试。
我的Jenkins项目启动Android模拟器并运行Gradle任务:app:connectedAndroidTest
。但是任务总是不稳定的,有时能够很好地运行测试,但大多数情况下都会出现以下错误:
:app:connectedAndroidTest FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:connectedAndroidTest'.
> com.android.builder.testing.api.DeviceException: No connected devices!
经过一番调查,我发现:
adb devices
显示处于联机状态的模拟器; adb shell am instrument
也可以正常使用; 因此我可以说问题是:app:connectedAndroidTest
没有检测到正在运行的模拟器。
我已经半装了一个shell脚本来安装APK并运行am instrument
,但后者不会生成与JUnit兼容的输出。
所以在做额外的工作之前,我想知道如何“修复”Gradle任务以便它检测到模拟器。 我也很乐意获得进一步查明问题的建议,例如:找出Gradle任务在我的机器上工作的原因。
答案 0 :(得分:0)
首先清理您的项目,然后重新创建一个Android模拟器,执行cmd commond adb start-service。如果再次失败,您应该在市场中使用其他模拟器。
答案 1 :(得分:0)
我面临同样的问题。 到目前为止有任何暗示吗?在我以前的蚂蚁脚本中,为了确保adb连接到设备,我们曾经这样做:
%ANDROID_SDK%-current\platform-tools\adb.exe devices
%ANDROID_SDK%-current\platform-tools\adb.exe root
%ANDROID_SDK%-current\platform-tools\adb.exe devices
%ANDROID_SDK%-current\platform-tools\adb.exe wait-for-device
这样我们确保设备在测试时可用。