Test en cours d'exécution ratée: Impossible de trouver l'instrumentation pour info: ComponentInfo{} — erreur en essayant de le tester dans IntelliJ avec Gradle
Chaque fois que j'essaie d'exécuter mes tests de la console dit ceci:
Running tests
Test running startedTest running failed: Unable to find instrumentation info for:
ComponentInfo{com.employeeappv2.employeeappv2.test/android.test.InstrumentationTestRunner}
Empty test suite.
J'ai été coincé sur depuis un certain temps et les solutions que j'ai vu en ligne à ce jour n'ont pas aidé.
Ma structure de projet est mis en place comme ceci:
*Module Principal
-src
*instrumentTest
-java
*principaux
-java
-manifeste
*construire.gradle
Mon build.gradle fichier ressemble à ceci:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 19
buildToolsVersion "19.1.0"
defaultConfig {
minSdkVersion 16
targetSdkVersion 19
versionCode 1
versionName "2.1.0"
testPackageName "login.test"
testInstrumentationRunner "android.test.InstrumentationTestRunner"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard- rules.txt'
}
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile files('libs/scandit.zip')
compile project(':pullToRefresh')
compile 'com.android.support:appcompat-v7:19.+'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.1+'
compile 'org.springframework.android:spring-android-rest-template:1.0.1+'
compile 'org.json:json:20090211'
compile 'com.fasterxml.jackson.core:jackson-databind:2.3.1'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.3.0'
compile 'com.fasterxml.jackson.core:jackson-core:2.3.1'
compile 'com.android.support:support-v4:19.1.+'
compile 'com.mcxiaoke.volley:library:1.0.+@aar'
androidTestCompile 'junit:junit:3.8'
}
Avez-vous besoin d'avoir un manifeste pour votre répertoire tests? Si oui, quelle serait-elle?
Edit: j'ai essayé d'ajouter un manifeste à mon instrumentTest répertoire avec pas de chance. Notez que je ne pouvais pas obtenir IntelliJ pour résoudre le targetPackage nom, de sorte qu'il s'affiche en rouge.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.employeeappv2.employeeappv2.src.instrumentTest"
android:versionCode="1"
android:versionName="1.0.0">
<application>
<uses-library android:name="android.test.runner" />
</application>
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.employeeappv2.employeeappv2.src.main"/>
</manifest>
Vous devez vous connecter pour publier un commentaire.
Je suis en utilisant Android Studio 1.1 et les étapes suivantes résolu ce problème pour moi:
Dans
Run - Edit Configurations - Android Tests
Spécifiez l'instrumentation runner
android.test.InstrumentationTestRunner
Puis dans la section "créer des variantes de" fenêtre de l'outil (sur la gauche), changer le test de l'artefact à
Android Instrumentation Tests
.Pas testInstrumentationRunner nécessaire dans la construction.gradle et pas de l'instrumentation de la balise requise dans le fichier manifest.
J'ai eu la même erreur quand j'ai essayé d'ajouter
multiDexEnabled true
àbuild.gradle
.Je vais ajouter mon expérience ici, parce que c'est l'un des premiers résultats Google lors d'une recherche avec le
... Unable to find ... ComponentInfo ...
message d'erreur.Dans mon cas, l'ajout de
testInstrumentationRunner
comme ici, a fait le tour:(J'ai
com.android.tools.build:gradle:1.5.0
)Quand je créé un nouveau package, Studio créé un ApplicationTest classe. À l'aide de nous.myname.mypackage comme un exemple, la structure de répertoire suivante a été créé:
Initialement, il a travaillé hors de la boîte. Il cesser de travailler après que j'ai installé le produit de saveurs. J'ai par la suite fait les changements suivants à construire.gradle:
certains préfèrent
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
(Avec ma configuration actuelle, je dois utiliser
...InstrumentationTestRunner
quand en debug, etAndroidJUnitRunner
lors de l'utilisation de presse type de build.)La configuration ci-dessus ne fonctionne qu'avec la version debug de type. Si vous souhaitez l'utiliser avec la version ou avec une version personnalisée, vous pouvez inclure les éléments suivants dans la construction.gradle:
Dans la construction des Variantes onglet sur le côté inférieur gauche de Studio, assurez-vous d'avoir
Android Instrumentation Tests
et la bonnebuildType
sélectionné.Pour ce que ça vaut, COMME 2.3 ai raccroché quand j'ai créé un custom test (test personnalisé coureur après l'utilisation régulière de test runner. J'ai eu la même erreur que publié dans la question.
La suppression de l'Debug Configurations pour TOUS Android Essais Instrumentés et de reconstruction, il fixe. Je crois que le problème réside dans le fait que vous ne pouvez plus choisir une coutume coureur dans le Debug Configurations parce que c'est probablement construit dans la via gradle.
J'ai eu à faire une combinaison de VikingGlen de réponse, Liuting de réponse, et cette réponse. Cette réponse qui fonctionne pour Android Studio version 2.1.
Exécuter -> Modifier les Configurations... -> Général> instrumentation Spécifique runner (facultatif): "android.de soutien.test.runner.AndroidJUnitRunner"
Dans
build.gradle
(celui avec tous vos dépendances), mettez ceci:defaultConfig {
testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
}
Alors qu'il pourrait exécuter des tests de ce type:
Ainsi, le principal problème est que lorsque je créé un androidTest sous-dossier /src/, il n'a pas été repris par l'Ide, comme un dossier source pour les tests (java sous-répertoire doit en vert). J'ai été en utilisant l'Ide 13.0.3 et après la mise à niveau de 13.1.3, tous mes problèmes ont disparu.
*Remarque: n'essayez pas d'ajouter une description pour votre androidTest dossier, le Gradle docs que le manifeste doit être auto-généré lors de la création de la androidTest dossier. Le problème pour moi est que le fichier n'est pas généré que androidTest n'était pas reconnu par IntelliJ/Gradle, jetant ainsi les pas de l'instrumentation d'erreur.
J'ai eu ce problème et résolu en allant à Exécuter -> Modifier les Configurations -> Vert bouton " + " en haut à gauche -> JUnit
À partir de là, définir la 'utiliser le classpath mod...' pour 'app' (ou par défaut de votre nom de l'application, qui est celle qui apparaît à gauche de l'exécuter (bouton de lecture) lorsque vous exécutez l'application)
Enfin, mettez votre test nom de la classe dans la classe:' zone de texte. Cliquez sur appliquer et ok.
À ce point, si la classe de test n'a pas d'autres erreurs, il devrait fonctionner.
Assurez-vous que l'application a été désinstallé pour tous les utilisateurs.
Accédez à paramètres -> apps (toutes les applications) -> Si votre application est-il alors de le toucher -> menu -> désinstaller pour tous les utilisateurs.
Mon problème était que l'application était à un point désinstallé, mais qui reste encore sur l'appareil, ce qui signifie qu'il n'a pas été désinstallée pour tous les utilisateurs. (Une autre question, vous ne savez pas comment résoudre. Je suis le seul utilisateur sur mon appareil)
De ce fait, l'application ne serait pas ré-installer, et de la suite de test n'avait rien contre.
C'est ce que j'ai remarqué dans mon projet, de mon application(principale) module de construire.gradle, j'ai eu la suivante buildType configuration
Lorsque j'ai utilisé AndroidJUnitRunner que le lanceur de test(à la fois à partir d'Android Studio) et que testInstrumentationRunner dans la construction.gradle, les tests s'est déroulé sans accroc.
Dans un sous-module qui avait multiDexEnabled vrai comme defaultconfig.ini.php
Je suis tombé sur le problème de
quand j'ai précisé AndroidJUnitRunner en IDE et le sous-module de construire.gradle. Et cela a été fixée par la spécification de MultiDexTestRunner que le test runner IDE/build.gradle.
La solution pour mon problème est de changer le nom de la méthode de
à
Espère que cela aide quelqu'un.