Robolectric ne pouvez pas trouver des ressources ou le fichier de manifeste
J'ai créé un nouveau projet d'essai et ajouté la ligne suivante à mon testMethod:
Robolectric.getShadowApplication().getString(R.string.mystring);
Mon test a échoué avec
android.content.res.Resources$NotFoundException: unknown resource 2131558482
La console affiche les avertissements suivants:
WARNING: No manifest file found at .\..\..\MyProject\AndroidManifest.xml.Falling back to the Android OS resources only.
To remove this warning, annotate your test class with @Config(manifest=Config.NONE).
WARNING: no system properties value for ro.build.date.utc
Est AndroidManifest.xml nécessaire pour obtenir des ressources de chaîne?
J'ai essayé d'ajouter Manifeste par org.robolectric.Config.propriétés et @Config mais l'avertissement persiste et je ne peux pas obtenir la ressource de chaîne. J'ai fait en sorte que le chemin d'accès relatif à manifester est correct.
J'ai aussi essayé de changer les JUnit configuration d'exécution, mais cela n'a pas aider.
OriginalL'auteur lukjar | 2013-09-10
Vous devez vous connecter pour publier un commentaire.
Solution pour le problème décrit ici:
http://blog.futurice.com/android_unit_testing_in_ides_and_ci_environments
Le Manque Manifeste De
Vous devriez avoir remarqué que Robolectric se plaint de ne pas être en mesure de trouver votre Manifeste Android. Nous allons régler cela par l'écriture d'un test personnalisé coureur. Ajoutez ce qui suit que app/src/test/java/com/example/app/test/RobolectricGradleTestRunner.java:
Oubliez pas de changer le RunWith annotations dans la classe de test.
String manifestPath = myAppPath + "../../../manifests/full/debug/AndroidManifest.xml"; String resPath = myAppPath + "../../../res/debug"; String assetPath = myAppPath + "../../../assets/debug";
Je ne peux vraiment pas understan, pourquoi createAppManifest(...) la méthode ne peut pas être résolu? Ce qui est absent?
demande de constructeur public et qui ne fonctionne pas
Le futurice lien est rompu
OriginalL'auteur user3635764
J'ai affronté mêmes erreurs, Nous avons utilisé plusieurs saveurs et buildtypes Donc, il y a des étapes à faire:
1) Android studio exécution des tests de configuration
Vous devez définir le répertoire de travail à $MODULE_DIR$ dans Windows. http://robolectric.org/getting-started/ dois dire que.
2) l'Unité de test doivent être annotées comme ceci:
Ici, nous avons plaine lien vers le fichier de manifeste et packageName
OriginalL'auteur Kirill Vashilo
Vous avez besoin d'un
AndroidManifest.xml
et Robolectric dépend actuellement il être à la racine du projet que le chemin d'accès implique.OriginalL'auteur Corey D
J'ai remarqué que j'ai utilisé pour déclarer manifeste comme en haut de ma classe de test
Et je suis passé maintenant à l'œuvre.
src/main...
et la deuxième avecapp/src/main/...
. Je n'ai aucune idée de pourquoi cela se passeElle était due à inproper répertoire de travail dans JUnit exécuter configuration comme décrit dans @Kirill Vashilo répondre
OriginalL'auteur Juan Mendez
Je viens résolu le même problème avec Robolectric (ver: robolectric-2.4-jar-with-dependencies.jar et le retour inconnu des ressources, tandis que le chargement de la ressource à partir de différentes valeurs,* les dossiers par exemple:
Dans mon cas, je voulais reconnaître les différents appareils. Pour cette raison, j'ai créé screen.xml dans les dossiers suivants:
Mon espace de travail est le suivant:
Mon test unitaire avec Robolectric:
Au-dessus de code de test s'imprime sur la console: 10 pouces-tablette...
OriginalL'auteur damax
J'ai remplacé getConfigProperties() par sous-classement RobolectricTestRunner. Veuillez suivre ce lien: https://stackoverflow.com/a/29907234/727654
OriginalL'auteur Nishant Soni