我尝试使用Gradle 托管设备和 Github 操作进行 CI 测试。我做了几次尝试,但大多遇到
Execution failed for task ':app:nexusOneApi30Setup'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.ManagedDeviceSetupTask$ManagedDeviceSetupRunnable
> java.lang.IllegalStateException: Gradle was not able to complete device setup for: dev30_aosp_atd_x86_Nexus_One
This could be due to having insufficient resources to provision the number of
devices requested. Try running the test again and request fewer devices or
fewer shards.
Run Code Online (Sandbox Code Playgroud)
作为来源,我在我的fork中使用https://github.com/android/testing-samples/tree/main/ui/espresso/ScreenshotSample,它在本地正常工作
android android-espresso github-actions gradle-managed-device
使用gradle版本8.0.2
我正在使用 gradle 托管设备在 2 个模拟器上并行运行 Android Espresso 测试。我使用以下命令运行它:
./gradlew pixel4api31DebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.xxx.yyy.zzz.Suites.CITestSuite -Pandroid.experimental.androidTest.numManagedDeviceShards=2 --enable-display -Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect"
Run Code Online (Sandbox Code Playgroud)
测试完成后,我看到以下错误:
Could not receive test results from the test executor.
io.grpc.StatusRuntimeException: CANCELLED: client cancelled
at io.grpc.Status.asRuntimeException(Status.java:526)
at io.grpc.stub.ServerCalls$StreamingServerCallHandler$StreamingServerCallListener.onCancel(ServerCalls.java:284)
at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.closedInternal(ServerCallImpl.java:353)
at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.closed(ServerCallImpl.java:341)
at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1Closed.runInContext(ServerImpl.java:844)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
at java.base@11.0.18/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base@11.0.18/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base@11.0.18/java.lang.Thread.run(Thread.java:829)
Run Code Online (Sandbox Code Playgroud)
56m 28s 内构建失败
当我导航到结果位置时:测试执行已完成。查看报告:file:///Users/xxx/repos/android/test/app/build/reports/androidTests/managedDevice/allDevices/index.html
有谁知道我如何修复此错误,因为无法看到导致构建失败的测试结果?
./gradlew -v
------------------------------------------------------------
Gradle 8.0.2
------------------------------------------------------------
Build time: 2023-03-03 16:41:37 UTC
Revision: 7d6581558e226a580d91d399f7dfb9e3095c2b1d
Kotlin: 1.8.10
Groovy: 3.0.13
Ant: Apache Ant(TM) version 1.10.11 compiled on July …Run Code Online (Sandbox Code Playgroud) 通过gradle 托管设备运行 android espresso 测试时,即运行:
./gradlew pixel4api30DebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.aaa.bbb.ccc.Suites.TestSuite -Pandroid.experimental.androidTest.numManagedDeviceShards=3
Run Code Online (Sandbox Code Playgroud)
是否可以在运行测试时显示模拟器,以便您能够看到发生了什么?