我有超过一百个Espresso测试。有一段时间,当我使用./gradlew clean cAT
启动它们时,测试在连接的设备上完成,在我的案例中是Genymotion模拟器,但是当它们完成时,gradle任务卡在终端Building 96% > : <appname>:connectedAndroidTest
。我可以用CTRL + C关闭任务,但因为它没有正常完成,所以没有产生html输出。
修改
测试结束后10分钟,这是在终端(-d标志)中产生的:
`
22:07:44.542 [DEBUG] [org.gradle.api.Task] DeviceConnector 'Google Nexus 5 - 5.1.0 - API 22 - 1080x1920 - 5.1': uninstalling <package>.test
22:07:44.551 [ERROR] [org.gradle.api.Task] Unable to uninstall <package>.test
com.android.ddmlib.InstallException: device '192.168.59.101:5555' not found
at com.android.ddmlib.Device.uninstallPackage(Device.java:1015)
at com.android.builder.testing.ConnectedDevice.uninstallPackage(ConnectedDevice.java:136)
at com.android.builder.internal.testing.SimpleTestCallable.uninstall(SimpleTestCallable.java:260)
at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:242)
at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:48)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.android.ddmlib.AdbCommandRejectedException: device '192.168.59.101:5555' not found
at com.android.ddmlib.AdbHelper.setDevice(AdbHelper.java:862)
at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:451)
at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:382)
at com.android.ddmlib.Device.executeShellCommand(Device.java:615)
at com.android.ddmlib.Device.uninstallPackage(Device.java:1009)
... 10 more
22:07:44.554 [ERROR] [org.gradle.api.Task] null
com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: device '192.168.59.101:5555' not found
at com.android.builder.testing.ConnectedDevice.uninstallPackage(ConnectedDevice.java:139)
at com.android.builder.internal.testing.SimpleTestCallable.uninstall(SimpleTestCallable.java:260)
at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:242)
at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:48)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.android.ddmlib.InstallException: device '192.168.59.101:5555' not found
at com.android.ddmlib.Device.uninstallPackage(Device.java:1015)
at com.android.builder.testing.ConnectedDevice.uninstallPackage(ConnectedDevice.java:136)
... 9 more
Caused by: com.android.ddmlib.AdbCommandRejectedException: device '192.168.59.101:5555' not found
at com.android.ddmlib.AdbHelper.setDevice(AdbHelper.java:862)
at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:451)
at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:382)
at com.android.ddmlib.Device.executeShellCommand(Device.java:615)
at com.android.ddmlib.Device.uninstallPackage(Device.java:1009)
... 10 more
22:07:44.658 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':<appname>:connectedAndroidTest'
22:07:44.658 [LIFECYCLE] [class org.gradle.TaskExecutionLogger] :<appname>:connectedAndroidTest FAILED
`
修改 看起来它试图在测试中卸载应用程序时会挂起。