In diesem Abschnitt wird erläutert, wie Sie die Trade Federation-Tests ausführen und nach einer Änderung am Projekt dazu beitragen können. Sie beinhalten die folgenden Funktionen:
- Wo Sie die neuen Klassen für Unit-Tests hinzufügen
- Unit-Tests in Eclipse und außerhalb der Eclipse-IDE ausführen
- Wo Funktionstests hinzufügen
- Funktionstests ausführen
- Einige der vor dem Einreichen erforderlichen TF-Überprüfungen lokal ausführen
Einheitentests hinzufügen
Fügen Sie die Klasse für die Unit-Tests im Android Open Source Project (AOSP) unter folgendem Pfad hinzu: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java
WICHTIG: Wenn Sie diese Klassen an diesen Stellen hinzufügen, werden sie automatisch im Presubmit-Modus ausgeführt, ohne dass eine zusätzliche Einrichtung erforderlich ist.
Unittests ausführen
Alle AOSP-Unittests 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. Wenn Sie alle Einheitentests ausführen möchten, führen Sie die Suite com.android.tradefed.UnitTests aus.
Sie können den Unit-Test auch nach dem Build über die Befehlszeile im Tradefed-Quellbaum starten, z. B. so:
tools/tradefederation/core/javatests/run_tradefed_tests.sh
Unittests können eigenständig ausgeführt werden, Funktionstests sollten jedoch mit Trade Federation selbst ausgeführt werden. Für Funktionstests ist ein Android-Gerät erforderlich. Alle Funktionstests müssen der Namenskonvention *FuncTest
folgen.
Ergebnisse von Unit-Tests prüfen
Wenn run_tradefed_tests.sh
ausgeführt wird, werden bei den Unit-Tests alle Teile des Testharness einschließlich einiger Fehlerbedingungen getestet. Es wird eine ausführliche Ausgabe in der Konsole ausgegeben, einschließlich Stack-Traces.
In der abschließenden Zusammenfassung der Ergebnisse wird angezeigt, ob ein Fehler aufgetreten ist oder nicht.
Beispiel für eine endgültige Zusammenfassung in der Console:
12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]
Alle Tests sollen erfolgreich sein. Wenn bei einer lokalen Änderung ein Fehler auftritt, müssen Sie die Tests korrigieren.
Funktionstests hinzufügen
Wenn Ihr Funktionstest ein Gerät umfasst (
ITestDevice
API verwendet), befindet sich die Suitendefinition incom.android.tradefed.DeviceFuncTests
. Andernfalls befindet sich die Suitendefinition untercom.android.tradefed.FuncTests
.Wenn es sinnvoll ist, Ihre Testmethoden in eine der vorhandenen Unterklassen der Suite einzufügen, fügen Sie sie dort hinzu. Andernfalls können Sie der entsprechenden Suite eine neue Klasse hinzufügen.
In beiden Fällen wird der Test automatisch in der CI-Pipeline zusammen 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
adb
und gegebenenfallsfastboot
im PATH von Eclipse enthalten sind. Am einfachsten starten Sie Eclipse über eine Shell-Umgebung mit dem richtigen PATH. - Erstellen Sie eine Java-Anwendung. Konfiguration über Ausführen > Konfigurationen ausführen ausführen
- Legen Sie für „project“ den Wert
tradefed-tests
und für die Hauptklasse den Wertcom.android.tradefed.command.CommandRunner
fest. - Führen Sie
m tradefed-all
aus. - Geben Sie auf dem Tab Argumente die folgenden Befehlszeilenargumente an:
host --class <full path of test class to run>
- Klicken Sie auf Ausführen.
Funktionstests außerhalb von Eclipse ausführen
- Build Trade Federation
- 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-Vorabtests für lokale Änderungen ausführen
Wenn Sie den Test ähnlich wie den TF-Vorab-Befehl ausführen möchten, verwenden Sie Folgendes:
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
Dadurch werden alle Presubmit-Tests für TF auf Ihrem lokal erstellten TF ausgeführt, damit Sie prüfen können, ob Ihre Änderung keine Tests bricht.
TF-Vorabtests sind eine Supermenge der oben genannten Unit-Tests, ihre Ausführung ist jedoch langsamer. Daher wird empfohlen, die Unittests während der Entwicklung auszuführen, um eine schnellere Validierung zu ermöglichen, und die Presubmits auszuführen, bevor die CL hochgeladen wird.