In diesem Abschnitt wird beschrieben, wie Sie die Trade Federation-Tests ausführen und nach einer Änderung am Projekt dazu beitragen können. Dazu gehören:
- 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
Unit-Tests hinzufügen
Fügen Sie die Klasse für die Unit-Tests im Android Open Source Project (AOSP) an folgender Stelle 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.
Einheitentests 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 Unit-Tests 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 Test-Harnesses 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 angegeben, ob ein Fehler aufgetreten ist oder nicht.
Beispiel für eine abschließende Zusammenfassung in der Konsole:
12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]
Alle Tests müssen 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 Suite-Unterklassen 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 ist es, Eclipse über eine Shell-Konfiguration mit dem richtigen PATH zu starten. - Erstellen Sie eine Java-Anwendung. Führen Sie die Konfiguration über Ausführen > Konfigurationen ausführen aus.
- 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
- Trade Federation erstellen
- 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 eine ähnliche Ausführung wie bei der TF-Voreinreichung wünschen, 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.