最近我在我的Firebase Android应用程序中添加了一些Espresso测试,因此在模拟器上运行它们的总时间长达8分钟。
现在每当我试图在Firebase测试实验室中运行我们的Espresso测试时,该应用程序总是因各种原因被Android操作系统杀死。例子:
在Nexus 5模拟器上运行,API 23:测试开始后约6分钟,com.google.android.gms
获取更新并终止正在进行的测试:
D/PackageManager(1678): Renaming /data/app/vmdl517737698.tmp to /data/app/com.google.android.gms-2
I/ActivityManager(1678): Force stopping com.google.android.gms appid=10008 user=-1: replace sys pkg
I/ActivityManager(1678): Killing 1970:com.google.android.gms.persistent/u0a8 (adj 1): stop com.google.android.gms
W/PackageManager(1678): Trying to update system app code path from /data/app/com.google.android.gms-1 to /data/app/com.google.android.gms-2
<...>
I/ActivityManager(1678): Killing 5654:org.example.MyApplication/u0a84 (adj 0): stop com.google.android.gms
感到惊讶,我尝试在Nexus 5模拟器上运行,API 19(我的minSdkVersion为15):测试开始后大约20秒(!),关于某些Chimera API的奇怪消息显示并杀死了我“更新配置“:
E/ModuleProvider(4927): Unhandled query from org.example.MyApplication: content://com.google.android.gms.chimera/api/
I/ChimeraModuleLdr(5546): Module config changed, forcing restart due to module
I/Process(5546): Sending signal. PID: 5546 SIG: 9
当然,Firebase测试实验室会立即注意到被杀死的过程,并通过将测试标记为“失败”进行响应,原因为:Process crashed
。
我的问题是:如何在Firebase测试实验室中处理Android操作系统的这种行为?创建一个junit retry @Rule并没有帮助 - 整个过程都被杀死了,没有任何机会重新启动。
答案 0 :(得分:1)
原来这是Firebase测试实验室的一个临时(好,至少持续一个月左右)的问题。我与Firebase支持部门保持联系,他们让我每周都会发布消息,直到它被解决。