HINWEIS: Diese Lösung basiert auf der Verwendung von Eclipse Indigo (3.8.2) und muss möglicherweise für eine andere IDE etwas anders implementiert werden, obwohl die Grundprinzipien dieselben sind.
Ich hatte ähnliche Probleme und stellte fest, dass Folgendes immer funktioniert:
( HINWEIS: Diese Anweisungen dienen zum Erstellen einer neuen Projektgruppe von Grund auf neu. Wenn Sie bereits Teile der Projektgruppe erstellt haben, müssen Sie Ihre Projekte möglicherweise so ändern, dass sie auf dieselbe Weise verbunden werden. )
- Erstellen Sie ein neues Android Library-Projekt, indem Sie während der Erstellung das Kontrollkästchen "Is Library" aktivieren. (Zum Beispiel ein Android-Projekt namens "RemingtonAndroidTools").
- Erstellen Sie das Android Library-Projekt und stellen Sie sicher, dass eine JAR-Datei im Ordner bin erstellt wurde. (Zum Beispiel eine JAR-Datei mit dem Namen "RemingtonAndroidTools.jar".)
- Erstellen Sie ein leeres Android-Projekt zum Testen der Android-App, die als Android-Test-App dient. (Zum Beispiel ein Android-Projekt namens "RemingtonAndroidToolsTestApp"). Sie müssen den Quellcode oder die Ressourcen des Android Test App-Projekts nur ändern, wenn Sie etwas haben, das zum Testen hinzugefügt werden muss. Viele Dinge können ohne Änderungen am Android Test App Project getestet werden. Das Android Test App-Projekt ist eine Brücke zwischen Ihrem Android Library-Projekt und dem Android Junit-Projekt, die das Testen des Android Library-Projekts über Android Junit ermöglicht.
- Wechseln Sie zur Registerkarte Bibliothek des Java Build Path für das Android Test App-Projekt (in diesem Beispiel "RemingtonAndroidToolsTestApp").
- Fügen Sie die JAR-Datei (in diesem Beispiel "RemingtonAndroidTools.jar") des Android Library-Projekts (in diesem Beispiel "RemingtonAndroidTools") über die Schaltfläche "Jars hinzufügen ..." hinzu.
- Erstellen Sie ein neues Android-Testprojekt (z. B. "RemingtonAndroidToolsTester"), das als Android-Bibliothekstester dient, und wählen Sie das Android-Test-App-Projekt (in diesem Beispiel "RemingtonAndroidToolsTestApp") als Ziel aus.
- Wechseln Sie zur Registerkarte Bibliothek des Java Build Path für das Android Library Tester-Projekt (in diesem Beispiel "RemingtonAndroidToolsTester").
- Fügen Sie die JAR-Datei (in diesem Beispiel "RemingtonAndroidTools.jar") des Android Library-Projekts (in diesem Beispiel "RemingtonAndroidTools") über die Schaltfläche "Jars hinzufügen ..." hinzu.
- Suchen Sie den letzten Ordner Ihres Android-Pakets im Android Library Tester-Projekt (z. B. "danny.remington.remington_android_tools_test_app.test") und fügen Sie eine Testklasse (z. B. "MainActivityTest") hinzu, die von ActivityInstrumentationTestCase2 erbt.
- Bearbeiten Sie die Testklasse (in diesem Beispiel "TestActivityTest"), um die Aktivität (z. B. "TestActivity") der Android-Test-App (in diesem Beispiel "RemingtonAndroidToolsTestApp") als Parameter für ActivityInstrumentationTestCase2 zu verwenden.
- Bearbeiten Sie die Testklasse (in diesem Beispiel "TestActivityTest") und erstellen Sie einen Standardkonstruktor, der super (Class) aufruft und die Klasse der Android-Test-App (z. B. "TestActivity.class") übergibt.
Sie sollten am Ende drei Projekte haben (Android Library, Android Test App, Android Library Tester), die ungefähr so aussehen:



Am Ende sollten Sie eine Klasse zum Testen Ihrer Android-Bibliothek haben, die ungefähr so aussieht:
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);
}
}
Sie können dann einen beliebigen Test hinzufügen. Sie müssen die Android-Test-App (in diesem Beispiel "RemingtonAndroidToolsTestApp") nicht weiter referenzieren, um Ihre Tests auszuführen, es sei denn, sie erfordern Zugriff auf eine Android-spezifische Komponente (wie z. B. den Ordner "Assets"). Wenn Sie auf Android-spezifische Komponenten zugreifen müssen, können Sie dies tun, indem Sie die Android-Test-App (in diesem Beispiel "RemingtonAndroidToolsTestApp") ändern und dann über die von der Standard-Android-Junit-API bereitgestellte Instrumentierung darauf verweisen. (Mehr dazu lesen Sie hier: http://developer.android.com/tools/testing/testing_android.html )