In diesem Abschnitt wird erläutert, wie Sie die Trade Federation-Tests ausführen und dazu beitragen können, nachdem Sie eine Änderung am Projekt vorgenommen haben. Sie beinhalten die folgenden Funktionen:
- Wo die neuen Unittest-Klassen hinzugefügt werden
- Einheitentests in Eclipse und außerhalb der Eclipse-IDE ausführen
- Funktionstests hinzufügen
- Funktionstests ausführen
- Einige TF-Pre-Submit-Validierungen lokal ausführen
Unittests hinzufügen
Fügen Sie im Open-Source-Projekt für Android (AOSP) die Unit-Test-Klasse in folgendem Pfad hinzu: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java
WICHTIG: Wenn Sie Ihre neuen Einheitentestklassen an diesen Speicherorten hinzufügen, werden sie automatisch im Presubmit-Prozess ausgeführt, ohne dass eine zusätzliche Einrichtung erforderlich ist.
Einheitentests ausführen
Alle AOSP-Unit- und Funktionstests für Trade Federation befinden sich im Projekt tools/tradefederation/core/tests
.
Wenn Sie in Eclipse einen einzelnen Unit-Test ausführen möchten, klicken Sie einfach mit der rechten Maustaste auf den Test und wählen Sie Ausführen als > JUnit aus. Führen Sie die Suite com.android.tradefed.UnitTests aus, um alle Einheitentests auszuführen.
Sie können den Unittest auch nach dem Erstellen über die Befehlszeile im Tradefed-Quellbaum starten, wie hier gezeigt:
tools/tradefederation/core/javatests/run_tradefed_tests.sh
Einheitentests können eigenständig ausgeführt werden, Funktionstests sollten jedoch mit Trade Federation ausgeführt werden. Sie erfordern ein Android-Gerät. Alle Funktionstests sollten der Namenskonvention *FuncTest
folgen.
Ergebnisse von Unittests prüfen
Wenn Sie run_tradefed_tests.sh
ausführen, werden mit den Einheitentests alle Teile des Testharness getestet, einschließlich einiger Fehlerbedingungen. Es wird eine ausführliche Ausgabe in der Konsole ausgegeben, einschließlich Stacktraces.
In der endgültigen Zusammenfassung der Ergebnisse wird angegeben, ob ein Fehler aufgetreten ist.
Beispiel für die endgültige Zusammenfassung in der Console:
12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]
Alle Tests müssen erfolgreich durchlaufen werden. Wenn also bei Ihrer lokalen Änderung ein Fehler auftritt, müssen Sie die Tests entsprechend korrigieren.
Funktionstests hinzufügen
Wenn Ihr Funktionstest ein Gerät umfasst (eine
ITestDevice
-API verwendet), befindet sich die Suite-Definition incom.android.tradefed.DeviceFuncTests
. Andernfalls befindet sich die Suite-Definition incom.android.tradefed.FuncTests
.Wenn Ihre Testmethoden in eine der vorhandenen Suite-Unterklassen passen, sollten Sie sie dort hinzufügen. Andernfalls können Sie der entsprechenden Suite einen neuen Kurs hinzufügen.
In beiden Fällen wird Ihr Test automatisch in der CI-Pipeline mit den anderen Funktionstests ausgeführt, wenn Sie ihn der Suite hinzufügen.
Funktionstests ausführen
So führen Sie einen Funktionstest über Eclipse aus:
- Achten Sie darauf, dass ein Gerät mit dem Host verbunden ist und dass sich
adb
und gegebenenfallsfastboot
im PATH von Eclipse befinden. Am einfachsten ist es, Eclipse über eine Shell zu starten, die mit dem richtigen PATH eingerichtet ist. - Erstellen Sie eine Java-Anwendung. Ausführungskonfiguration über Run > Run configurations (Ausführen > Ausführungskonfigurationen).
- Legen Sie das Projekt auf
tradefed-tests
und die Hauptklasse aufcom.android.tradefed.command.CommandRunner
fest. - Führen Sie
m tradefed-all
aus. - Geben Sie auf dem Tab Arguments (Argumente) die folgenden Befehlszeilenargumente an:
host --class <full path of test class to run>
- Klicken Sie auf Ausführen.
So führen Sie Funktionstests außerhalb von Eclipse aus:
- Handelsföderation aufbauen
- Verbinden Sie ein Android-Gerät mit dem Host.
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
ausführen- Optional können Sie das Gerät auswählen, indem Sie
--serial <serial no>
anhängen, wie es in der Ausgabe vonadb devices
angezeigt wird.
TF-Pre-Submit-Tests für lokale Änderungen ausführen
Wenn Sie die Ausführung ähnlich wie beim TF-Presubmit durchführen möchten, verwenden Sie Folgendes:
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
Dadurch werden alle TF-Presubmit-Tests für Ihr lokal erstelltes TF ausgelöst, damit Sie prüfen können, ob Ihre Änderung Tests beeinträchtigt.
TF-Presubmit-Tests sind eine Obermenge der oben genannten Einheitentests, aber ihre Ausführung dauert länger. Es wird daher empfohlen, die Unittests während der Entwicklung zur schnelleren Validierung auszuführen und die Presubmits vor dem Hochladen der CL auszuführen.