Para mis pruebas de instrumentación estaba usando
@RunWith(AndroidJUnit4.class)
de
import androidx.test.runner.AndroidJUnit4;
para establecer mis casos de prueba. Ahora esta línea se marca como obsoleta con la sugerencia para usar AndroidJUnit4
desde
import androidx.test.ext.junit.runners.AndroidJUnit4
Sin embargo, si intento importar AndroidJUnit4
desde el paquete con nombre, aparece el error, que ext
no se puede resolver.
¿Tiene una idea, qué paquete debe incluirse en gradle para resolver este problema?
android
junit
android-testing
androidx
Marcel Gangwisch
fuente
fuente
Respuestas:
De acuerdo con la documentación para AndroidJUnit4 ,
El archivo gradle debe contener la siguiente línea:
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
Cambiar la clase de prueba
AndroidJUnit4ClassRunner
deAndroidJUnit4
Si todavía no funciona, asegúrese de limpiar y / o reconstruir su proyecto. También puede consultar la versión actual directamente en el repositorio maven de Google
fuente
Si probó la solución de @ MarcelGangwisch y su compilación falla al decir que no puede encontrar el recurso Y también limpió / reconstruyó su proyecto y todavía no funciona, intente esto: (basado también en la solución de @ KrzysztofDziuba)
En su archivo gradle donde cambió la dependencia, asegúrese de agregarlo como el tipo que necesita, es decir:
Para pruebas de IU:
Para pruebas unitarias:
En mi caso, lo agregué como ambos y ahora funciona.
fuente
Solución
Agregue esta línea a build.gradle:
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
Cambiar
AndroidJUnit4
aAndroidJUnit4ClassRunner
en la clase de pruebaAdvertencia
Recibí el mismo error, pero la siguiente solución me falló:
Archivo -> Invalidar cachés ..., y seleccione Invalidar y reiniciar
fuente
Para mí, los siguientes pasos funcionaron:
1. Reemplace las bibliotecas de Androidx con la publicada aquí . mi final se
app/build.gradle
veía así:Luego reemplacé manualmente los módulos importados en mi
ExampleInstrumentTest.java
clase con las últimas clases:Lo que me molestaba era el hecho de que la
InstrumentationRegistery
clase todavía estaba en desuso. Así que solíaInstrumentationRegistry.getInstrumentation().getTargetContext();
deandroidx.test.platform.app.InstrumentationRegistry
clase.fuente
@RunWith(AndroidJUnit4ClassRunner.class)
fue la parte que resolvió el problema en mi caso. Realmente no entiendo por qué Android Studio genera código obsoleto a veces.ApllicationProvider.getApplicationContext<Context>()
lugar deInstrumentationRegistry.getInstrumentation().getTargetContext();
Intenté todo lo anterior hasta que fui al sitio oficial de Android, y sugirieron importar desde en
androidx.test.ext.junit.runners.AndroidJUnit4
lugar deandroidx.test.runner.AndroidJUnit4
. enlacefuente
En mi caso cambiando
androidTestImplementation
atestImplementation
ayudado. No sabía la diferencia antes de leer esta diferencia de Android entre testImplementation y androidTestImplementation en build.gradlefuente
Si importó esas bibliotecas de prueba AnroidX, sincronizó y reconstruyó el proyecto, pero los paquetes importados aún no se resolvieron. Solo recuerde cómo actualizó su proyecto a AndroidX, cierre Android Studio, elimine la
.idea
carpeta y vuelva a abrir su proyecto ...¡Esto funcionó para mí!
fuente
Incluya estas líneas en el módulo de la aplicación build.gradle.
testImplementation 'androidx.test.ext: junit: 1.1.1' androidTestImplementation 'androidx.test.ext: junit: 1.1.1'
En la clase de prueba, reemplace su corredor de prueba para
importar androidx.test.ext.junit.runners.AndroidJUnit4;
Si
InstrumentationRegistry.getTargetContext()
está en desuso, useInstrumentationRegistry
deandroidx.test.platform.app
esta maneraInstrumentationRegistry.getInstrumentation (). GetTargetContext ()
fuente