El reemplazo de obsolescencia de registerIdlingResources no funciona

2 minutos de lectura

Avatar de usuario de Crisic
crisis

Estoy tratando de reemplazar mi Espresso registerIdlingResources y unregisterIdlingResources método en desuso usando IdlingRegistry método de acuerdo con la documentación de Android.

Algunas de mis pruebas funcionaron antes de la actualización y ya no funcionan ahora. Estas pruebas funcionan de manera unitaria, pero no juntas.

Noté que hay una pequeña diferencia con la versión anterior (de Espresso clase), esta línea no está presente en IdlingRegistry clase :

baseRegistry.sync(IdlingRegistry.getInstance().getResources(), IdlingRegistry.getInstance().getLoopers());

pienso esto sync El método es muy importante para mi IdlingResource personalizado…

¿Cómo puedo sincronizar mi looper sin esta línea?

Editar: uso EspressoCore 3.0.1 con runner/rules 1.0.1

Edit2: Enlace de la documentación que se ha especificado en desuso: Aquí y Aquí.

Asegúrese de ejecutar el última versión de androidx.test

Si sus pruebas se ejecutan una a la vez, pero fallan cuando se ejecutan juntas, Orquestador de prueba de Android (“ATO”) puede resolver ese problema. ATO ejecuta cada método de prueba en un nuevo proceso, por lo que se borra cualquier estado en la memoria.

de los documentosla configuración básica de gradle es:

android {
  defaultConfig {
   ...
   testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

   // The following argument makes the Android Test Orchestrator run its
   // "pm clear" command after each test invocation. This command ensures
   // that the app's state is completely cleared between tests.
   testInstrumentationRunnerArguments clearPackageData: 'true'
 }

  testOptions {
    execution 'ANDROIDX_TEST_ORCHESTRATOR'
  }
}

dependencies {
  androidTestImplementation 'androidx.test:runner:1.3.0'
  androidTestUtil 'androidx.test:orchestrator:1.3.0'
}

Los documentos también incluyen la configuración para instalar y usar Orquestador de prueba de Android sin gradle.

También puede usar ATO en Firebase Test Lab:

Si aún tiene problemas con su IdlingResources, puede probar el biblioteca de abejas ocupadas lo que simplifica el uso de IdlingResources y los hace más fáciles de depurar. (descargo de responsabilidad, soy un mantenedor de esa biblioteca)

¿Ha sido útil esta solución?