Pour mes tests d'instrumentation que j'utilisais
@RunWith(AndroidJUnit4.class)
de
import androidx.test.runner.AndroidJUnit4;
afin d'établir mes cas de test. Maintenant, cette ligne est marquée comme obsolète avec l'indication à utiliser à AndroidJUnit4
partir de
import androidx.test.ext.junit.runners.AndroidJUnit4
Cependant, si j'essaie d'importer à AndroidJUnit4
partir du package nommé, j'obtiens l'erreur, cela ext
ne peut pas être résolu.
Avez-vous une idée du package à inclure dans gradle pour résoudre ce problème?
android
junit
android-testing
androidx
Marcel Gangwisch
la source
la source
Réponses:
Selon la documentation pour AndroidJUnit4 ,
Le fichier gradle doit contenir la ligne suivante:
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
Changer la classe de test en
AndroidJUnit4ClassRunner
deAndroidJUnit4
Si cela ne fonctionne toujours pas, assurez-vous de nettoyer et / ou de reconstruire votre projet. Vous pouvez également vérifier la version actuelle directement dans le référentiel maven de Google
la source
Si vous avez essayé la solution de @ MarcelGangwisch et que votre build échoue en disant qu'il ne trouve pas la ressource ET que vous avez également nettoyé / reconstruit votre projet et que cela ne fonctionne toujours pas, essayez ceci: (basé également sur la solution de @ KrzysztofDziuba)
Dans votre fichier de notes où vous avez modifié la dépendance, assurez-vous de l'ajouter comme type dont vous avez besoin, c'est-à-dire:
Pour les tests d'interface utilisateur:
Pour les tests unitaires:
Dans mon cas, je l'ai ajouté à la fois et maintenant cela fonctionne.
la source
Solution
Ajoutez cette ligne dans build.gradle:
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
Passer
AndroidJUnit4
àAndroidJUnit4ClassRunner
dans la classe de testavertissement
J'ai eu la même erreur, mais la solution suivante a échoué pour moi:
Fichier -> Invalider les caches ... et sélectionnez Invalider et redémarrer
la source
Pour moi, les étapes suivantes ont fonctionné:
1. Remplacez les bibliothèques androidx par celles publiées ici . ma finale
app/build.gradle
ressemblait à ceci:J'ai ensuite remplacé manuellement les modules importés dans ma
ExampleInstrumentTest.java
classe par les dernières classes:La chose qui me dérangeait était le fait que la
InstrumentationRegistery
classe était toujours déconseillée. J'ai donc utiliséInstrumentationRegistry.getInstrumentation().getTargetContext();
de laandroidx.test.platform.app.InstrumentationRegistry
classe.la source
@RunWith(AndroidJUnit4ClassRunner.class)
était la partie qui a résolu le problème dans mon cas. Je ne comprends pas vraiment pourquoi le studio Android génère parfois du code obsolète.ApllicationProvider.getApplicationContext<Context>()
place deInstrumentationRegistry.getInstrumentation().getTargetContext();
J'ai essayé tout ce qui précède jusqu'à ce que je me rende sur le site officiel d'Android, et ils ont suggéré d'importer à la
androidx.test.ext.junit.runners.AndroidJUnit4
place deandroidx.test.runner.AndroidJUnit4
. lienla source
Dans mon cas, changer
androidTestImplementation
pourtestImplementation
aider. Je ne connaissais pas la différence avant de lire cette différence Android entre testImplementation et androidTestImplementation dans build.gradlela source
Si vous avez importé ces bibliothèques de test AnroidX, synchronisé et reconstruit le projet, mais les packages importés n'étaient toujours pas résolus. N'oubliez pas comment vous avez mis à niveau votre projet vers AndroidX, fermez Android Studio et supprimez le
.idea
dossier et rouvrez votre projet à nouveau ...Cela a fonctionné pour moi!
la source
Incluez ces lignes dans le module d'application build.gradle.
testImplementation 'androidx.test.ext: junit: 1.1.1' androidTestImplementation 'androidx.test.ext: junit: 1.1.1'
Dans la classe de test, remplacez votre lanceur de test par
import androidx.test.ext.junit.runners.AndroidJUnit4;
Si
InstrumentationRegistry.getTargetContext()
est l' utilisation désapprouvéeInstrumentationRegistry
deandroidx.test.platform.app
comme celui - ciInstrumentationRegistry.getInstrumentation (). GetTargetContext ()
la source