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
- Einen Teil der Vorabprüfung von TensorFlow lokal ausführen
Einheitentests 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 Ihre neuen Klassen für den Unit-Test 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 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 Console:
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 (eine
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 starten Sie Eclipse über eine Shell-Konfiguration 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.