Android Studio wurde entwickelt, um das Testen zu vereinfachen. Sie enthält viele Funktionen, die das Erstellen, Ausführen und Analysieren von Tests vereinfachen. Sie können Tests einrichten, die auf Ihrem lokalen Computer ausgeführt werden, oder instrumentierte Tests, die auf einem Gerät ausgeführt werden. Sie können ganz einfach einen einzelnen Test oder eine bestimmte Gruppe von Tests auf einem oder mehreren Geräten ausführen. Die Testergebnisse werden direkt in Android Studio angezeigt.
Abbildung 1: Android Studio mit einer Übersicht der Testergebnisse.
Auf dieser Seite wird beschrieben, wie Sie Tests in Android Studio verwalten. Informationen zum Schreiben automatisierter Android-Tests finden Sie unter Apps auf Android-Geräten testen.
Testtypen und ‑standorte
Der Speicherort Ihrer Tests hängt vom Typ des Tests ab, den Sie schreiben. Android-Projekte haben Standardverzeichnisse für Quellcode für lokale Einheitentests und instrumentierte Tests.
Lokale Einheitentests befinden sich unter module-name/src/test/java/
. Diese Tests werden auf der lokalen Java Virtual Machine (JVM) Ihres Computers ausgeführt. Verwenden Sie diese Tests, um die Ausführungszeit zu minimieren, wenn Ihre Tests keine Abhängigkeiten vom Android-Framework haben oder wenn Sie Test-Doubles für die Abhängigkeiten vom Android-Framework erstellen können.
Weitere Informationen zum Schreiben lokaler Einheitentests finden Sie unter Lokale Einheitentests erstellen.
Instrumentierte Tests befinden sich unter $module-name/src/androidTest/java/
.
Diese Tests werden auf einem Hardwaregerät oder Emulator ausgeführt. Sie haben Zugriff auf Instrumentation
-APIs, mit denen Sie Informationen wie die Context
-Klasse der App, die Sie testen, abrufen und die App, die getestet wird, über Ihren Testcode steuern können. Instrumentierte Tests werden in ein separates APK eingebunden und haben daher eine eigene AndroidManifest.xml
-Datei. Diese Datei wird automatisch generiert. Sie können aber unter $module-name/src/androidTest/AndroidManifest.xml
eine eigene Version erstellen, die mit dem generierten Manifest zusammengeführt wird. Instrumentierte Tests werden verwendet, wenn Sie Integrations- und funktionale UI-Tests schreiben, um die Nutzerinteraktion zu automatisieren, oder wenn Ihre Tests Android-Abhängigkeiten haben, für die Sie keine Test-Doubles erstellen können.
Weitere Informationen zum Schreiben instrumentierter Tests finden Sie unter Instrumentierte Tests erstellen und UI-Tests automatisieren.
Sie können Ihre Tests in build-variantenspezifischen Verzeichnissen platzieren, um nur bestimmte Build-Varianten zu testen. Sie könnten beispielsweise einige lokale Einheitentests in $module-name/src/testMyFlavor/java/
platzieren, damit die Tests auf Ihre App ausgerichtet sind, die mit dem Quellcode dieses Flavors erstellt wurde. Weitere Informationen zum Erstellen dieser benutzerdefinierten Tests finden Sie unter Instrumentierten Test für eine Build-Variante erstellen.
Wenn Sie ein neues Projekt erstellen oder ein App-Modul hinzufügen, erstellt Android Studio die oben aufgeführten Testquellsets und fügt in jedes eine Beispieltestdatei ein. Sie können sie im Fenster Project (Projekt) sehen, wie in Abbildung 2 dargestellt.
Abbildung 2: Die instrumentierten Tests (1) und die lokalen JVM-Tests (2) Ihres Projekts sind entweder in der Projektansicht (links) oder in der Android-Ansicht (rechts) sichtbar.
Neue Tests erstellen
So fügen Sie einen neuen Test für eine bestimmte Klasse oder Methode direkt aus dem Quellcode hinzu:
- Öffnen Sie die Quelldatei mit dem Code, den Sie testen möchten.
- Setzen Sie den Cursor auf den Namen der Klasse oder Methode, die Sie testen möchten, und drücken Sie Strg+Umschalt+T (Befehlstaste+Umschalt+T unter macOS).
- Klicken Sie im eingeblendeten Pop-up-Fenster auf Neuen Test erstellen…
- Wählen Sie im Dialogfeld Test erstellen die Option JUnit4 aus, bearbeiten Sie die Felder und Methoden, die generiert werden sollen, und klicken Sie dann auf OK.
- Klicken Sie im Dialogfeld Zielverzeichnis auswählen auf das Quellset, das dem Typ des Tests entspricht, den Sie erstellen möchten: androidTest für einen instrumentierten Test oder test für einen lokalen Unit-Test. Klicken Sie dann auf OK.
Alternativ können Sie eine generische Testdatei im entsprechenden Testquellenset erstellen:
- Klicken Sie im Fenster Projekt auf der linken Seite auf das Drop-down-Menü und wählen Sie die Ansicht Android aus.
- Klicken Sie mit der rechten Maustaste auf das Verzeichnis java und wählen Sie New > Java Class (Neu > Java-Klasse) oder New > Kotlin Class/File (Neu > Kotlin-Klasse/Datei) aus. Alternativ können Sie das Verzeichnis java auswählen und die Tastenkombination Strg+N (Befehlstaste+N auf macOS) verwenden.
- Klicken Sie im Dialogfeld Zielverzeichnis auswählen auf das Quellset, das dem Typ des Tests entspricht, den Sie erstellen möchten: androidTest für einen instrumentierten Test oder test für einen lokalen Unit-Test. Klicken Sie dann auf OK.
- Geben Sie einen Namen für die Datei ein und klicken Sie auf OK.
Wenn Ihre App nach dem Hinzufügen eines Tests nicht kompiliert wird, prüfen Sie, ob Sie die richtigen Abhängigkeiten für die Testbibliothek eingerichtet haben. Informationen zu den richtigen Abhängigkeiten finden Sie unter Lokale Tests erstellen und Instrumentierte Tests erstellen.
Tests ausführen
Bevor Sie Tests ausführen, müssen Sie Ihr Projekt vollständig mit Gradle synchronisieren. Klicken Sie dazu in der Symbolleiste auf Sync Project
. Sie können Tests mit unterschiedlichem Detaillierungsgrad durchführen:
Wenn Sie alle Tests in einem Verzeichnis oder einer Datei ausführen möchten, öffnen Sie das Projektfenster und führen Sie einen der folgenden Schritte aus:
- Klicken Sie mit der rechten Maustaste auf ein Verzeichnis oder eine Datei und dann auf Ausführen
.
- Wählen Sie das Verzeichnis oder die Datei aus und verwenden Sie die Tastenkombination Strg+Umschalt+R.
- Klicken Sie mit der rechten Maustaste auf ein Verzeichnis oder eine Datei und dann auf Ausführen
Wenn Sie alle Tests in einer Klasse oder einer bestimmten Methode ausführen möchten, öffnen Sie die Testdatei im Code-Editor und führen Sie einen der folgenden Schritte aus:
- Klicken Sie in der Rinne auf das Symbol Test ausführen
.
- Klicken Sie mit der rechten Maustaste auf die Testklasse oder ‑methode und dann auf Ausführen
.
- Wählen Sie die Testklasse oder ‑methode aus und verwenden Sie die Tastenkombination Strg+Umschalt+R.
- Klicken Sie in der Rinne auf das Symbol Test ausführen
Ihre instrumentierten Tests werden auf einem physischen Gerät oder Emulator ausgeführt. Weitere Informationen zum Einrichten physischer Geräte finden Sie unter Apps auf einem Hardwaregerät ausführen. Weitere Informationen zum Einrichten von Emulatoren finden Sie unter Apps im Android-Emulator ausführen.
Testlauf konfigurieren
Standardmäßig werden Ihre Tests mit der Standardkonfiguration von Android Studio ausgeführt. Wenn Sie einige Ausführungseinstellungen ändern müssen, z. B. den Instrumentierungs-Runner und die Bereitstellungsoptionen, können Sie die Ausführungskonfiguration im Dialogfeld Run/Debug Configurations (Ausführungs-/Fehlerbehebungskonfigurationen) bearbeiten. Klicken Sie dazu auf Run > Edit Configurations (Ausführen > Konfigurationen bearbeiten).
Vereinheitlichter Gradle-Testausführer
Das Android Gradle-Plug-in 7.1.0 und Android Studio Bumblebee und höher verwenden die eigene Implementierung des Android-Instrumentierungstest-Runners von Gradle, um Instrumentierungstests auszuführen. Wenn Sie denselben Test-Runner verwenden, sind die Ergebnisse wahrscheinlich konsistent, unabhängig davon, ob Sie AGP über die Befehlszeile (z. B. auf einem Continuous Integration-Server) oder über Android Studio ausführen.
Abbildung 3: Der Unified Gradle-Test-Runner.
In früheren Versionen von Android Studio wurde der instrumentierte Android-Testrunner von IntelliJ anstelle des instrumentierten Android-Testrunners von Gradle verwendet. Wenn Sie also nicht die aktuelle Version von Android Studio verwenden, können je nachdem, ob Sie Ihre Tests in Android Studio oder über die Befehlszeile mit dem Gradle-Plug-in ausführen, unterschiedliche Testergebnisse angezeigt werden. So kann es beispielsweise sein, dass Tests mit einem Runner bestanden werden, mit einem anderen jedoch fehlschlagen.
Abbildung 4: Separate Test-Runner in älteren Versionen von Android Studio
Wenn Sie bereits instrumentierte Testkonfigurationen in Ihrem Projekt gespeichert haben, werden die Tests mit Gradle auf Ihrem verbundenen Gerät ausgeführt. Sie können eine neue instrumentierte Testkonfiguration über die Gutter-Aktion neben Ihrer Testklasse oder -methode erstellen, wie unten dargestellt.
Abbildung 5: Tests über die Gutter-Aktion ausführen
Wenn Sie instrumentierte Tests ausführen, können Sie prüfen, ob Android Studio den Gradle-Testrunner verwendet. Sehen Sie sich dazu die Testausgabe in der Testmatrix für die Ausgabe von Gradle-Aufgaben an.
Auf mehreren Geräten gleichzeitig ausführen
Instrumentierte Tests werden standardmäßig auf einem physischen Gerät oder Emulator ausgeführt. Wenn Sie sehen möchten, wie sich Ihre Tests auf einer größeren Anzahl von Geräten verhalten, können Sie so weitere Geräte auswählen:
Öffnen Sie vor dem Ausführen der Tests das Drop-down-Menü für das Zielgerät und wählen Sie Mehrere Geräte auswählen… aus.
Abbildung 6 Wählen Sie das Drop-down-Menü „Mehrere Geräte“ aus.
Wählen Sie die gewünschten Geräte aus und klicken Sie auf OK.
Achten Sie darauf, dass der Text im Drop-down-Menü „Ziel“ in Mehrere Geräte geändert wird, und klicken Sie auf Ausführen
.
Im Toolfenster „Testmatrix“ werden die Testergebnisse für jede ausgewählte Gerätekonfiguration angezeigt.
Abbildung 7. Testergebnisse im Toolfenster „Testmatrix“
Sie können auf einen bestimmten Test klicken, um das Ergebnis im Ausgabebereich zu sehen. Sie können die Tests auch sortieren, indem Sie auf die verschiedenen Spalten klicken.
Mit Firebase Test Lab ausführen
Mit Firebase Test Lab können Sie Ihre App gleichzeitig auf vielen beliebten Android-Geräten und Gerätekonfigurationen (verschiedene Kombinationen aus Sprache, Ausrichtung, Bildschirmgröße und Plattformversion) testen. Diese Tests werden auf physischen und virtuellen Geräten in Remote-Rechenzentren von Google ausgeführt. Die Testergebnisse enthalten Testprotokolle und Details zu allen App-Fehlern.
So beginnen Sie mit der Verwendung von Firebase Test Lab:
- Erstellen Sie ein Google-Konto, wenn Sie noch keins haben.
- Klicken Sie in der Firebase Console auf Neues Projekt erstellen.
Android Studio bietet integrierte Tools, mit denen Sie konfigurieren können, wie Sie Ihre Tests in Firebase Test Lab bereitstellen möchten. Nachdem Sie ein Firebase-Projekt erstellt haben, können Sie eine Testkonfiguration erstellen und Ihre Tests ausführen:
- Klicken Sie im Hauptmenü auf Run > Edit Configurations (Ausführen > Konfigurationen bearbeiten).
- Klicken Sie auf Neue Konfiguration hinzufügen
und wählen Sie Instrumentierte Android-Tests aus.
- Geben Sie die Details Ihres Tests ein oder wählen Sie sie aus, z. B. den Testnamen, den Modultyp, den Testtyp und die Testklasse.
- Wählen Sie im Drop-down-Menü Ziel unter Optionen für Bereitstellungsziel die Option Gerätematrix für Firebase Test Lab aus.
- Wenn Sie nicht angemeldet sind, klicken Sie auf Mit Google anmelden und erlauben Sie Android Studio, auf Ihr Konto zuzugreifen.
- Wählen Sie neben Cloud Project Ihr Firebase-Projekt aus der Liste aus.
- Wählen Sie neben Matrixkonfiguration eine der Standardkonfigurationen aus dem Drop-down-Menü aus oder erstellen Sie eine eigene, indem Sie auf Dialogfeld öffnen
klicken. Sie können ein oder mehrere Geräte, Android-Versionen, Sprachen und Bildschirmausrichtungen auswählen, mit denen Sie Ihre App testen möchten. Firebase Test Lab testet Ihre App anhand jeder Kombination Ihrer Auswahlmöglichkeiten, wenn Testergebnisse generiert werden.
- Klicken Sie im Dialogfeld Run/Debug Configurations (Ausführungs-/Fehlerbehebungskonfigurationen) auf OK, um das Dialogfeld zu schließen.
- Klicken Sie auf Ausführen
, um die Tests auszuführen.
Abbildung 8. Testkonfiguration für Firebase Test Lab erstellen
Testergebnisse analysieren
Wenn Firebase Test Lab die Ausführung Ihrer Tests abgeschlossen hat, wird das Fenster Ausführen mit den Ergebnissen geöffnet (siehe Abbildung 9). Möglicherweise müssen Sie auf Bestandene anzeigen klicken, um alle ausgeführten Tests zu sehen.
Abbildung 9. Die Ergebnisse von Instrumentierungstests mit Firebase Test Lab.
Sie können Ihre Tests auch im Web analysieren. Klicken Sie dazu im Fenster Ausführen auf den Link, der am Anfang des Testausführungsprotokolls angezeigt wird.
Testabdeckung ansehen
Das Tool zur Testabdeckung ist für lokale Einheitentests verfügbar, um den Prozentsatz und die Bereiche Ihres App-Codes zu erfassen, die durch Ihre Einheitentests abgedeckt wurden. Mit dem Tool zur Testabdeckung können Sie ermitteln, ob Sie die Elemente, Klassen, Methoden und Codezeilen, aus denen Ihre App besteht, ausreichend getestet haben.
Wenn Sie Tests mit Abdeckung ausführen möchten, folgen Sie derselben Anleitung wie unter Tests ausführen beschrieben. Klicken Sie jedoch anstelle von Ausführen auf Testname mit Abdeckung ausführen
. Im Fenster Projekt ist diese Option möglicherweise hinter Weitere Ausführungs-/Debug-Optionen verborgen. Sie können die Einstellungen für die Codeabdeckung auch im Dialogfeld Run/Debug Configurations auf dem Tab Code Coverage konfigurieren.
Abbildung 10. Prozentsätze der Codeabdeckung für eine Anwendung.
Testergebnisse abrufen
Wenn Sie einen oder mehrere Tests in Android Studio ausführen, werden die Ergebnisse im Fenster Run (Ausführen) angezeigt. Abbildung 11 zeigt einen erfolgreichen Testlauf.
Abbildung 11. Die Testergebnisse werden im Fenster „Ausführen“ angezeigt.
Im Fenster Ausführen werden die Tests links in einer Baumansicht und die Ergebnisse und Meldungen für die aktuelle Testsuite rechts im Ausgabebereich angezeigt. Verwenden Sie die Symbolleisten, Kontextmenüs und Statussymbole, um die Testergebnisse zu verwalten:
- Mit der Symbolleiste „Ausführen“ können Sie den aktuellen Test noch einmal ausführen, den aktuellen Test beenden, fehlgeschlagene Tests noch einmal ausführen (wird nicht angezeigt, da sie nur für Einheitentests verfügbar ist), die Ausgabe pausieren und Threads ausgeben.
- Mit der Testsymbolleiste können Sie Testergebnisse filtern und sortieren. Sie können auch Knoten ein- oder ausblenden, die Testabdeckung anzeigen und Testergebnisse importieren oder exportieren.
- Klicken Sie auf das Kontextmenü, um den laufenden Test zu verfolgen, Inline-Statistiken anzuzeigen, zum Stacktrace zu scrollen, den Quellcode bei einer Ausnahme zu öffnen, automatisch zum Quellcode zu scrollen und den ersten fehlgeschlagenen Test auszuwählen, wenn der Testlauf abgeschlossen ist.
- Teststatussymbole geben an, ob bei einem Test ein Fehler aufgetreten ist, er ignoriert wurde, fehlgeschlagen ist, gerade ausgeführt wird, bestanden wurde, pausiert wurde, beendet wurde oder nicht ausgeführt wurde.
- Klicken Sie mit der rechten Maustaste auf eine Zeile in der Baumansicht, um ein Kontextmenü aufzurufen, in dem Sie die Tests im Debug-Modus ausführen, die Testquellcodedatei öffnen oder zur Zeile im zu testenden Quellcode springen können.
Testfehler analysieren
Wenn einer oder mehrere Ihrer Tests fehlschlagen, wird im Ergebnisbereich ein Warnzeichen und die Anzahl der Fehler angezeigt (z. B. „Fehler bei Tests: 1“):
Abbildung 12. Details zu fehlgeschlagenen Tests im Ausgabebereich.
Wenn Sie in der Baumansicht auf der linken Seite auf den fehlgeschlagenen Test klicken, werden im Ausgabebereich auf der rechten Seite die Details dieses Tests angezeigt. Dort wird der erwartete Wert neben dem tatsächlichen Wert angezeigt, sodass Sie die beiden vergleichen können. Über den Link Klicken, um den Unterschied zu sehen wird ein Tool zum Vergleichen von Unterschieden geöffnet, in dem Sie die Ergebnisse nebeneinander sehen können.
Weitere Informationen
Auf dieser Seite werden die grundlegenden Schritte beschrieben, die Sie beim Erstellen und Ausführen Ihres ersten Tests mit Android Studio ausführen müssen. Sie können Tests auch über die Befehlszeile ausführen. Sie können sich auch die IntelliJ-Dokumentation zum Testen ansehen. Weitere Informationen zum Konfigurieren von Tests beim Erstellen einer größeren Testsuite finden Sie unter Erweiterte Testeinrichtung.