NOTE : Cette solution est basée sur l'utilisation d'Eclipse Indigo (3.8.2) et peut être mise en œuvre de manière légèrement différente pour un autre IDE, bien que les principes de base soient les mêmes.
J'ai eu des problèmes similaires et j'ai trouvé que faire ce qui suit fonctionne toujours :
( REMARQUE : Ces instructions concernent la création d'un nouveau groupe de projet à partir de zéro. Si vous avez déjà construit des parties du groupe de projets, vous devrez peut-être modifier vos projets pour qu'ils se connectent de la même manière. )
- Créez un nouveau projet Android Library en cochant la case "Is Library" lors de la création. (par exemple un projet Android nommé "RemingtonAndroidTools").
- Construisez le projet Android Library et vérifiez qu'il a créé un fichier jar dans le dossier bin. (par exemple un fichier jar nommé "RemingtonAndroidTools.jar").
- Créez un projet Android vide pour tester l'application Android qui servira d'application de test Android. (Par exemple un projet Android nommé "RemingtonAndroidToolsTestApp"). Vous n'aurez pas besoin de modifier le code source ou les ressources du projet Android Test App, sauf si vous avez quelque chose à ajouter pour le test. Beaucoup de choses peuvent être testées sans aucune modification du projet Android Test App. Le projet Android Test App est un pont entre votre projet Android Library et le projet Android Junit qui permet de tester le projet Android Library via Android Junit.
- Allez dans l'onglet Library de Java Build Path pour le projet Android Test App ("RemingtonAndroidToolsTestApp" dans cet exemple).
- Ajoutez le fichier jar ("RemingtonAndroidTools.jar" dans cet exemple) du projet de bibliothèque Android ("RemingtonAndroidTools" dans cet exemple) via le bouton "Add Jars...".
- Créez un nouveau projet Android Test (par exemple "RemingtonAndroidToolsTester") qui servira de testeur de bibliothèque Android et sélectionnez le projet Android Test App ("RemingtonAndroidToolsTestApp" dans cet exemple) comme cible.
- Allez dans l'onglet Library de Java Build Path pour le projet Android Library Tester ("RemingtonAndroidToolsTester" dans cet exemple).
- Ajoutez le fichier jar ("RemingtonAndroidTools.jar" dans cet exemple) du projet de bibliothèque Android ("RemingtonAndroidTools" dans cet exemple) via le bouton "Add Jars...".
- Trouvez le dernier dossier de votre package Android dans le projet Android Library Tester ("danny.remington.remington_android_tools_test_app.test" par exemple) et ajoutez une classe de test ("MainActivityTest" par exemple) qui hérite de ActivityInstrumentationTestCase2.
- Modifiez la classe de test ("TestActivityTest" dans cet exemple) pour utiliser l'activité (par exemple "TestActivity") de l'application de test Android ("RemingtonAndroidToolsTestApp" dans cet exemple) comme paramètre pour ActivityInstrumentationTestCase2.
- Modifiez la classe de test ("TestActivityTest" dans cet exemple) et créez un constructeur par défaut qui fait un appel à super(Class) et passe la classe de l'application de test Android ("TestActivity.class" par exemple).
Vous devriez vous retrouver avec trois projets (Android Library, Android Test App, Android Library Tester) qui ressemblent à ceci :
Vous devriez vous retrouver avec une classe pour tester votre bibliothèque Android qui ressemble à ceci :
package danny.remington.remington_android_tools_test_app.test;
import android.test.ActivityInstrumentationTestCase2;
import danny.remington.remington_android_tools_test_app.TestActivity;
/**
*
*/
public class TestActivityTest extends
ActivityInstrumentationTestCase2<TestActivity> {
public TestActivityTest() {
super(TestActivity.class);
}
}
Vous pouvez ensuite ajouter tous les tests que vous souhaitez. Vous n'aurez pas besoin de faire référence à l'application de test Android ("RemingtonAndroidToolsTestApp" dans cet exemple) pour exécuter vos tests, sauf s'ils nécessitent l'accès à un composant spécifique à Android (comme le dossier Assets, par exemple). Si vous devez accéder à des composants spécifiques à Android, vous pouvez le faire en modifiant l'application de test Android ("RemingtonAndroidToolsTestApp" dans cet exemple), puis en la référençant via l'instrumentation fournie par l'API Junit Android standard. (Vous pouvez en savoir plus à ce sujet ici : http://developer.Android.com/tools/testing/testing_android.html )
1 votes
Ou ( alerte à la publicité éhontée ), vous pouvez utiliser un projet que j'ai créé : Android Library Test Harness (ce que j'aime appeler "Alt H"). Il est disponible en tant que git repo : gitorious.org/alth Le projet est toujours en cours de développement et la documentation est un peu éparse. N'hésitez pas à me contacter si vous avez des questions.