REMARQUE: Cette solution est basée sur l'utilisation d'Eclipse Indigo (3.8.2) et pourrait devoir être implémentée légèrement différemment 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 projets à partir de rien. Si vous avez déjà créé des parties du groupe de projets, vous devrez peut-être modifier vos projets afin 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").
- Générez le projet de bibliothèque Android 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 d'application de test Android, sauf si vous avez quelque chose à ajouter pour le test. De nombreux éléments peuvent être testés sans aucune modification du projet d'application de test Android. Le projet d'application de test Android est un pont entre votre projet de bibliothèque Android et le projet Android Junit qui permet de tester le projet de bibliothèque Android via Android Junit.
- Accédez à l'onglet Bibliothèque du chemin de génération Java pour le projet d'application de test Android («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 "Ajouter des pots ...".
- Créez un nouveau projet de test Android (par exemple "RemingtonAndroidToolsTester") qui servira de testeur de bibliothèque Android et sélectionnez le projet d'application de test Android ("RemingtonAndroidToolsTestApp" dans cet exemple) comme cible.
- Accédez à l'onglet Bibliothèque du chemin de construction Java 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 "Ajouter des pots ...".
- Recherchez 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 d'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 (bibliothèque Android, application de test Android, testeur de bibliothèque Android) 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 le test de votre choix. Vous n'aurez pas besoin de référencer l'application de test Android («RemingtonAndroidToolsTestApp» dans cet exemple) pour exécuter vos tests à moins qu'ils ne nécessitent l'accès à un composant spécifique à Android (comme le dossier Assets, par exemple). Si vous avez besoin d'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 )