Einheiten- und Funktionstests einschließen

In diesem Abschnitt wird erläutert, wie Sie die Handelsföderation-Tests durchführen und daran teilnehmen können. nachdem Sie eine Änderung am Projekt vorgenommen haben. Sie beinhalten die folgenden Funktionen:

  • Wo sollen die neuen Einheitentestklassen hinzugefügt werden?
  • Ausführen von Einheitentests in Eclipse und außerhalb der Eclipse-IDE
  • Wo Funktionstests hinzugefügt werden
  • Funktionstests ausführen
  • Einige der TF Presubmit-Validierungen lokal ausführen

Einheitentests hinzufügen

Fügen Sie im Android Open Source Project (AOSP) die Klasse für Einheitentests hier hinzu: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java

WICHTIG: Wenn Sie Ihre neuen Einheitentestklassen an diesen Orten hinzufügen, werden und werden ohne zusätzliche Einrichtung automatisch als Vorab-Übermittlung ausgeliefert.

Einheitentests ausführen

Alle AOSP-Einheiten- und Funktionstests für die Handelsföderation befinden sich in die tools/tradefederation/core/tests Projekt arbeiten.

Um in Eclipse einen einzelnen Unittest durchzuführen, klicken Sie einfach mit der rechten Maustaste auf den Test und wählen Sie Ausführen als > JUnit. Um alle Einheitentests auszuführen, führen Sie den com.android.tradefed.UnitTests-Suite.

Sie können den Einheitentest auch über die Befehlszeile in der Tradefed-Quelle starten Baum nach dem Bauen: tools/tradefederation/core/javatests/run_tradefed_tests.sh

Einheitentests können eigenständig ausgeführt werden, Funktionstests sollten jedoch ausgeführt werden durch die Nutzung der Handelsföderation selbst; benötigen sie ein Android-Gerät. Alle Funktionen Die Tests sollten der Namenskonvention *FuncTest entsprechen.

Ergebnisse von Unittests prüfen

Beim Ausführen von run_tradefed_tests.sh werden bei den Einheitentests alle Teile von und einige Fehlerbedingungen enthält. Es wird eine ausführliche Ausgabe ausgegeben. an die Konsole gesendet, einschließlich Stacktraces.

Die abschließende Zusammenfassung der Ergebnisse gibt an, 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 bleiben bestehen, sodass bei einem Fehler bei der lokalen Änderung ein Fehler auftritt. stellen Sie sicher, dass die Tests behoben sind.

Funktionstests hinzufügen

  • Wenn dein Funktionstest ein Gerät (verwendet eine beliebige ITestDevice API) umfasst, gilt Folgendes: Suite-Definition befindet sich in com.android.tradefed.DeviceFuncTests. Andernfalls befindet sich die Suitedefinition in com.android.tradefed.FuncTests.

  • Wenn es sinnvoll ist, eine der bestehenden Unterklassen der Suite hinzuzufügen, fügen Sie es lieber dort ein. Andernfalls können Sie dem entsprechenden

  • In beiden Fällen wird der Test automatisch ausgeführt, wenn Sie ihn der Suite hinzufügen. in der CI-Pipeline mit den anderen Funktionstests.

Funktionstests ausführen

So führen Sie einen Funktionstest in Eclipse aus:

  1. Prüfen Sie, ob ein Gerät mit dem Host verbunden ist und ob adb und falls nötig fastboot befinden sich im PATH von Eclipse. Am einfachsten geht dies, indem Sie Eclipse über eine Shell-Einrichtung mit dem richtigen PATH ausführen.
  2. Java-Anwendung erstellen Führen Sie die Konfiguration über Ausführen > Ausführen Konfigurationen
  3. Legen Sie für das Projekt tradefed-tests und für die Hauptklasse Folgendes fest: com.android.tradefed.command.CommandRunner.
  4. Führen Sie m tradefed-all aus.
  5. Geben Sie auf dem Tab Argumente die folgenden Befehlszeilenargumente an: host --class <full path of test class to run>
  6. Klicken Sie auf Ausführen.

Ausführen von Funktionstests außerhalb von Eclipse

  1. Gewerkschaftsföderation aufbauen.
  2. Verbinden Sie ein Android-Gerät mit dem Host.
  3. tools/tradefederation/core/javatests/run_tradefed_func_tests.sh ausführen
  4. Optional können Sie das Gerät auswählen, indem Sie --serial <serial no> als folgendes Element anhängen: wird in der Ausgabe von adb devices angezeigt.

TF-Voreinreichungstests mit lokalen Änderungen durchfü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 TF-Presubmit-Tests für Ihre lokal erstellte TF ausgelöst, können Sie überprüfen, ob Ihre Änderung keinen Testfehler darstellt.

TF-Voreinreichungstests sind eine Obermenge der obigen Einheitentests, aber es dauert länger, und führen sie aus. Es empfiehlt sich daher, die Einheitentests während der Entwicklung schnellere Validierung und führt die Vorabsendungen vor dem Hochladen des CL aus.