3 Stimmen

Wie führe ich Android-Unit-Tests/Funktionstests aus?

Nach dem " Hallo, Welt " und " Hallo, Test In den "Tutorials" habe ich eine Android-Anwendung mit Eclipse erstellt, zusammen mit einem entsprechenden Android-Testprojekt.

Die Tests laufen gut... einmal. Danach muss ich den Emulator schließen, um die Tests erneut ausführen zu können.

Wenn ich den Emulator nicht schließe, bleibt die Eclipse-Konsole bei "Installing instrumentation Android.test.InstrumentationTestRunner on device emulator-5554" hängen... Danach passiert nichts mehr.

Hier ist die Ausgabe meines Programms beim zweiten Durchlauf:

[HelloTest] ------------------------------
[HelloTest] Android Launch!
[HelloTest] adb is running normally.
[HelloTest] Performing android.test.InstrumentationTestRunner JUnit launch
[HelloTest] Automatic Target Mode: using existing emulator 'emulator-5554' running compatible AVD 'FakePhone'
[HelloTest] Uploading HelloTest.apk onto device 'emulator-5554'
[HelloTest] Installing HelloTest.apk...
[HelloTest] Success!
[HelloTest] Project dependency found, installing: Hello
[Hello] Application already deployed. No need to reinstall. 
[HelloTest] Launching instrumentation android.test.InstrumentationTestRunner on device emulator-5554

Wie Sie sehen können, bleibt es bei "Launching Instrumentation" stehen... Ich habe auch "adb logcat" ausgeführt und nichts Interessantes gesehen.

Mir wurde gesagt, ich solle die zu testende Anwendung im Emulator beenden, um den Test erneut durchzuführen. Leider wird die Anwendung im Emulator nicht angezeigt (sie ist in der normalen "gesperrten" Position und wenn sie entsperrt wird, erscheint der Startbildschirm), und selbst wenn ich sie aufrufe und dann beende, kann ich meine Tests nicht erneut durchführen.

Alle Beispielvideos und Tutorials hören beim ersten Durchlauf eines Tests auf. Ich habe noch nie jemanden gesehen, der einen Test ein zweites Mal durchführt!

3voto

anisbet Punkte 2632

Was dieses Problem für mich behoben hat, war die Erstellung eines neuen Android-Testprojekts mit Neu > Sonstiges > Android-Testprojekt . Dann habe ich eine neue JUnit-Testklasse mit Neu > JUnit-Testfall die die AndroidTestCase . Wenn Sie das tun, habe ich mich dafür entschieden, die setUp() y tearDown() Methoden und eine weitere Testmethode, die sich auf die von mir getestete Klasse bezieht. Mein Problem wurde durch das Entfernen der @Test Schlüsselwort(e), die Eclipse vor den Testmethoden einfügt.

Danach startete das Projekt y die Testmethoden durchgeführt. Ich hoffe, das hilft.

0 Stimmen

Ich musste junit3 verwenden, um die Tests zu laden. Ich war mit junit4 und geben Sie mir diesen gleichen Fehler.

1voto

Bactos Punkte 1233

Gefunden in Entwicklungsleitfaden

"Wenn Sie Ihren Code aktualisieren, verpacken Sie ihn regelmäßig und installieren ihn auf dem Emulator. Der Emulator bewahrt die Anwendung und ihre Zustandsdaten über Neustarts hinweg in einer Partition mit Benutzerdaten auf. Um sicherzustellen, dass die Anwendung bei Aktualisierungen ordnungsgemäß ausgeführt wird, müssen Sie möglicherweise die Partition mit den Benutzerdaten des Emulators löschen. Starten Sie dazu den Emulator mit der Option -wipe-data. Weitere Informationen über die Benutzerdatenpartition und andere Emulator-Speicher finden Sie unter Arbeiten mit Emulator-Disk-Images."

0 Stimmen

Das hat bei mir nicht funktioniert. Vielleicht habe ich es falsch gemacht. Funktioniert es bei Ihnen ?

0 Stimmen

Bei mir hat es funktioniert, ja. Löschen Sie die Daten, bevor Sie die Anwendung aktualisieren?

0 Stimmen

Ich habe das erwähnte Flag beim Starten des Emulators verwendet und versucht, die Tests wie üblich über Eclipse auszuführen. Beachten Sie auch, dass ich nicht einmal die App oder den Test geändert habe, ich möchte sie nur erneut ausführen, ohne den Emulator zu schließen und zwei Minuten zu warten, um es erneut zu versuchen. Es ist schneller und einfacher, meine App einfach neu zu verteilen und stattdessen herumzuklicken.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X