4

最近我在我的 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重试 @Rule并没有帮助 - 整个过程都被杀死,没有留下任何重试的机会。

4

1 回答 1

1

事实证明,这是 Firebase 测试实验室中的一个临时问题(嗯,至少持续了大约一个月)。我与 Firebase 支持人员取得了联系,他们每周都会向我发布消息,直到问题得到解决。

于 2017-10-24T18:27:55.280 回答