Beziehen Sie Unit- und Funktionstests ein

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 in com.android.tradefed.DeviceFuncTests . Andernfalls befindet sich die Suite-Definition in com.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:

  1. 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.
  2. Erstellen Sie eine Java-Anwendung. Führen Sie die Konfiguration über Ausführen > Konfigurationen ausführen aus.
  3. Legen Sie das Projekt auf tradefed-tests und die Hauptklasse auf com.android.tradefed.command.CommandRunner fest.
  4. Führen Sie m tradefed-all aus.
  5. Geben Sie auf der Registerkarte „Argumente“ die folgenden Befehlszeilenargumente an: host --class <full path of test class to run>
  6. Klicken Sie auf Ausführen .

Um Funktionstests außerhalb von Eclipse auszuführen.

  1. Bauen Sie eine Handelsföderation auf.
  2. Verbinden Sie ein Android-Gerät mit dem Host.
  3. Führen Sie tools/tradefederation/core/javatests/run_tradefed_func_tests.sh aus
  4. Wählen Sie optional das Gerät aus, indem Sie --serial <serial no> anhängen, wie es in der Ausgabe von adb 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.