Android Espresso分片随机失败,并显示INSTALL_FAILED_INVALID_APK

时间:2018-12-11 19:56:21

标签: android integration-testing android-espresso android-testing androidx

编辑:以下是原始帖子。这是我遇到的第一个问题,但是一遍又一遍地重复我的步骤,我得到了不同的结果。发布此信息后,我第一次尝试运行碎片,我得到了:

FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':ProgressiveApp:packageInternalStaging'.
> invalid distance too far back

下次:

> invalid code lengths set

下一个:

> Unexpected end of ZLIB input stream

这三个问题似乎都是与zip /压缩相关的问题。也许这是我的主要问题。

以下原始帖子:


我正在使用AndroidX Espresso 3.1.0和ANDROIDX_TEST_ORCHESTRATOR。我唯一的问题是,当我运行分片(以加快测试运行速度)时,有时它会无缘无故地决定失败。

例如,我打开三个终端和三个仿真器。我在每个终端中运行其中一个以启动三个单独的分片:

ANDROID_SERIAL=emulator-5554 ./gradlew connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.numShards=3 -Pandroid.testInstrumentationRunnerArguments.shardIndex=0
ANDROID_SERIAL=emulator-5556 ./gradlew connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.numShards=3 -Pandroid.testInstrumentationRunnerArguments.shardIndex=1
ANDROID_SERIAL=emulator-5558 ./gradlew connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.numShards=3 -Pandroid.testInstrumentationRunnerArguments.shardIndex=2

然后在每个模拟器上运行我三分之一的测试。到目前为止很好。很长一段时间后,它们都完成了,我有一个不错的HTML报告,告诉我零测试失败。我没碰过我的代码,我没碰过仿真器。我去触摸每个终端。在每一个命令中,我按下向上箭头以捕获在该终端中运行的最后一个命令,然后输入以重新运行我刚运行的命令。其中两个仿真器很好,可以通过所有测试。第三个没有,并且在下面给我这个错误消息:

> Task :<snip>:connectedInternalStagingAndroidTest FAILED
[no message defined]
java.lang.RuntimeException: com.android.builder.testing.api.DeviceException: 
com.android.ddmlib.InstallException: INSTALL_FAILED_INVALID_APK
    at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1431)
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: INSTALL_FAILED_INVALID_APK
    at com.android.builder.testing.ConnectedDevice.installPackage(ConnectedDevice.java:132)
    at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:147)
    at com.android.builder.internal.testing.SimpleTestCallable.call(SimpleTestCallable.java:59)
    at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
    ... 4 more
Caused by: com.android.ddmlib.InstallException: INSTALL_FAILED_INVALID_APK
    at com.android.ddmlib.Device.installRemotePackage(Device.java:1031)
    at com.android.ddmlib.Device.installPackage(Device.java:902)
    at com.android.ddmlib.Device.installPackage(Device.java:880)
    at com.android.ddmlib.Device.installPackage(Device.java:869)
    at com.android.builder.testing.ConnectedDevice.installPackage(ConnectedDevice.java:126)
    ... 7 more

为什么?怎么样?这没有任何意义。我点击并再次输入,然后它愉快地运行了所有测试,没有问题。

我的问题是,这种随机故障发生得足够多,以至于我无法设置机器来使用分片,因此无法为我的团队加快测试运行速度。

0 个答案:

没有答案