Récemment, j'ai ajouté quelques tests Espresso supplémentaires à mon application Android Firebase. La durée totale de leur exécution sur l'émulateur a donc augmenté de 8 minutes environ.L'application Firebase a été supprimée par Android OS dans Firebase Test Lab
Maintenant, chaque fois que j'essaie d'exécuter nos tests Espresso dans Firebase Test Lab, l'application est toujours tuée par le système d'exploitation Android pour diverses raisons. Exemples:
en cours d'exécution sur l'émulateur Nexus 5, API 23: environ 6 minutes après le test commence,
com.google.android.gms
obtient une mise à jour et tue le test en cours: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
surpris, j'ai essayé de courir sur l'émulateur Nexus 5, API 19 (ma version minSdk est 15): environ 20 secondes (!) après le démarrage du test, un message bizarre sur certaines API Chimera apparaît et tue mon "pour mettre à jour une config":
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
Bien sûr, le laboratoire de test Firebase remarque immédiatement le processus en train d'être tué et répond en marquant le test "échoué" avec la raison: Process crashed
.
Ma question est: comment puis-je gérer ce comportement du système d'exploitation Android dans le laboratoire de test Firebase? Créer un junit retry @Rule n'aide pas - tout le processus est tué, ne laissant aucune chance aux tentatives de démarrage.