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. Das beinhaltet:
- Wo werden die neuen Unit-Test-Klassen hinzugefügt?
- Ausführen von Unit-Tests in Eclipse und außerhalb der Eclipse-IDE
- Wo können Funktionstests hinzugefügt werden?
- Durchführung der Funktionstests
- Führen Sie einen Teil der TF-Presubmit-Validierung lokal aus
Fügen Sie Unit-Tests hinzu
Fügen Sie im Android Open Source Project (AOSP) die Unit-Tests-Klasse hinzu in: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java
WICHTIG: Das Hinzufügen Ihrer neuen Unit-Test-Klassen zu diesen Speicherorten führt dazu, dass sie ohne zusätzliche Einrichtung automatisch im Presubmit-Modus ausgeführt werden.
Führen Sie Unit-Tests durch
Alle AOSP-Einheitentests und Funktionstests für Trade Federation befinden sich im Projekt tools/tradefederation/core/tests
.
Um in Eclipse einen einzelnen Komponententest auszuführen, klicken Sie einfach mit der rechten Maustaste auf den Test und wählen Sie Ausführen als > JUnit aus. Um alle Komponententests auszuführen, führen Sie die Suite com.android.tradefed.UnitTests aus.
Sie können den Komponententest auch nach dem Erstellen über die Befehlszeile im Tradefed-Quellbaum starten, etwa so: tools/tradefederation/core/javatests/run_tradefed_tests.sh
Unit-Tests können eigenständig ausgeführt werden, Funktionstests sollten jedoch mithilfe von Trade Federation selbst ausgeführt werden; Sie erfordern ein Android-Gerät. Alle Funktionstests sollten der Namenskonvention *FuncTest
folgen.
Überprüfen Sie die Ergebnisse der Unit-Tests
Beim Ausführen von run_tradefed_tests.sh
testen die Komponententests alle Teile des Testsystems, einschließlich einiger Fehlerbedingungen. Es wird eine ausführliche Ausgabe an die Konsole ausgegeben, einschließlich Stack-Traces.
Die abschließende Zusammenfassung der Ergebnisse gibt Aufschluss darüber, 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]
Es wird sichergestellt, dass alle Tests bestehen bleiben. Wenn also bei Ihrer lokalen Änderung ein Fehler auftritt, stellen Sie bitte sicher, dass die Tests behoben sind.
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 es sinnvoll ist, Ihre Testmethoden in eine der vorhandenen Suite-Unterklassen einzufügen, fügen Sie sie lieber dort hinzu. Andernfalls können Sie der entsprechenden Suite gerne eine neue Klasse hinzufügen.
In beiden Fällen wird Ihr Test durch das Hinzufügen zur Suite automatisch in der CI-Pipeline zusammen mit den anderen Funktionstests ausgeführt.
Führen Sie Funktionstests durch
So führen Sie einen Funktionstest von Eclipse aus aus:
- Stellen Sie sicher, dass ein Gerät mit dem Host verbunden ist und dass sich
adb
und ggf.fastboot
im PATH von Eclipse befinden. Der einfachste Weg, dies zu tun, besteht darin, Eclipse über ein Shell-Setup 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 das Projekt auf
tradefed-tests
und die Hauptklasse aufcom.android.tradefed.command.CommandRunner
fest. - Führen Sie
m tradefed-all
aus. - Geben Sie auf der Registerkarte „Argumente“ die folgenden Befehlszeilenargumente an:
host --class <full path of test class to run>
- Klicken Sie auf Ausführen .
Um Funktionstests außerhalb von Eclipse auszuführen.
- Bauen Sie eine Handelsföderation auf.
- Verbinden Sie ein Android-Gerät mit dem Host.
- Führen Sie
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
aus - Wählen Sie optional das Gerät aus, indem Sie
--serial <serial no>
anhängen, wie es in der Ausgabe vonadb devices
erscheint.
Führen Sie TF-Presubmit-Tests für lokale Änderungen durch
Wenn Sie auf ähnliche Weise wie das TF-Presubmit ausfü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, um Ihnen bei der Überprüfung zu helfen, dass Ihre Änderung keine Tests beeinträchtigt.
TF-Presubmit-Tests sind eine Obermenge der oben genannten Unit-Tests, ihre Ausführung ist jedoch langsamer. Es wird daher empfohlen, die Unit-Tests während der Entwicklung durchzuführen, um die Validierung zu beschleunigen, und die Presubmits vor dem Hochladen des CL durchzuführen.