Comment faire pour tester un Projet de Bibliothèque Android
Je suis en train d'écrire un Android Projet de Bibliothèque en se basant sur Android classe Bitmap (appeler AndroindLib) qui ne contient que de l'utilitaire de la classe (pas d'activité). J'ai essayé de test à l'aide d'Android JUnit, mais il continue à se plaindre de ne peut pas trouver le AnroidLib.apk
Quel est le bon chemin à l'Unité de test Android du Projet de Bibliothèque?
- Ou (shameless plug alerte) vous pouvez utiliser un projet que j'ai créé: Android Bibliothèque Harnais de Test (ce que j'aime à appeler "Alt H"). Il est disponible comme un repo git: gitorious.org/alth Le projet est toujours en développement, et la documentation est un peu clairsemée, alors n'hésitez pas à me frapper si vous avez des questions.
Vous devez vous connecter pour publier un commentaire.
Citant la documentation:
"Il y a deux façons recommandées de mise en place de tests sur le code et les ressources dans un projet de bibliothèque:
Vous pouvez mettre en place un projet de test que les instruments d'un projet d'application qui dépend de la bibliothèque de projet. Vous pouvez ensuite ajouter des tests pour le projet de bibliothèque de fonctions spécifiques.
Vous pouvez configurer un projet d'application qui dépend de la bibliothèque et de mettre l'instrumentation dans ce projet. Cela vous permet de créer un projet qui contient à la fois les tests/instrumentation et le code de test."
Dans votre projet de test, il suffit de modifier le nom du paquet, de sorte que c'est le même que celui de la bibliothèque de l'emballage.
Par exemple, vous avez une bibliothèque dont le forfait est
"com.example.lib"
. Créer un projet de test de ciblage de votre bibliothèque. Dans le fichier de manifeste, vous verrezpackage="com.example.lib.test"
, ettargetPackage="com.example.lib"
. Il suffit de changer le package à partir de "com.exemple.lib.test" à "com.exemple.lib" (targetPackage
laisser tel quel).Aussi, assurez-vous que la bibliothèque est référencé pour votre projet de test PAS en Java build path, mais comme d'habitude Android bibliothèque : dans Eclipse, il doit être démontré que la bibliothèque dans
Project->Properties->Android
onglet, mais pas dansProject->Properties->Java Build Path
onglet.Puis exécutez des tests.
http://www.paulbutcher.com/2010/09/android-library-project-with-tests-step-by-step/ permet de décrire les processus nécessaires pour mettre en œuvre la deuxième suggestion dans CommonsWare la réponse de
Par la la documentation:
Le test d'un module de la bibliothèque est le même que le test d'une application.
La principale différence est que la bibliothèque et de ses dépendances sont automatiquement inclus en tant que dépendances du test APK. Cela signifie que le test APK comprend non seulement son propre code, mais aussi de la bibliothèque de l'AAR et de toutes ses dépendances. Car il n'y a pas de "application sous test", le androidTest tâche installe (et se désinstalle) seul le test APK.
Lors de la fusion de plusieurs fichiers de manifeste, Gradle suit la valeur par défaut de l'ordre de priorité et fusionne la bibliothèque manifeste dans le test APK principal du manifeste.
REMARQUE: Cette solution est basée sur l'utilisation d'Eclipse Indigo (3.8.2) et peut être mis en œuvre de manière légèrement différente pour un autre IDE bien que les principes de base sera le même.
J'ai eu des problèmes similaires et j'ai trouvé que faire ce qui suit fonctionne toujours:
(REMARQUE: Ces instructions sont pour la construction d'un nouveau groupe de projet à partir de zéro. Si vous avez déjà créé des pièces du groupe de projet, alors vous pouvez avoir à modifier vos projets afin qu'ils se connectent de la même manière.)
Vous devriez vous retrouver avec trois projets (Android Bibliothèque, Android Test App, Android Bibliothèque Testeur) qui ressemblent à ceci:
Vous devriez vous retrouver avec une classe pour tester votre Android Bibliothèque qui ressemble à ceci:
Vous pouvez ensuite ajouter tous les tests que vous voulez. Vous n'aurez pas besoin de faire référence à l'Android Application de Test ("RemingtonAndroidToolsTestApp" dans cet exemple) à la suite de l'exécution de vos tests sauf s'ils ont besoin d'un accès à un Android composant spécifique (comme le dossier des ressources, par exemple). Si vous avez besoin d'accéder à n'importe Android des composants spécifiques, vous pouvez le faire en modifiant le Android Application de Test ("RemingtonAndroidToolsTestApp" dans cet exemple), puis de référencement via les instruments fournis par la norme Android Junit API. (Vous pouvez lire plus à ce sujet ici: http://developer.android.com/tools/testing/testing_android.html)
Si votre ulitiy classes ne dépendent d'aucun android code spécifique, vous pouvez simplement utiliser la norme JUnit tests unitaires. Pas besoin d'utiliser les versions d'Android.