Optionen und Filter an Suite und Module übergeben

Machen Sie sich zuerst mit der Option Handling in Tradefed vertraut.

Unter Suite-Einrichtung werden die beiden Ebenen beschrieben, die in der Suite-Struktur vorhanden sind:

  • Die Suite der obersten Ebene
  • Die Module

In einem Tradefed-Kontext ohne Suite müssen Sie sich darüber keine Gedanken machen. Jede Option wird an den vollständigen Aufruf übergeben. Im Kontext einer Suite sind Module von der Suite isoliert. Daher sind nicht alle Optionen auf ihrer Ebene verfügbar.

Optionen an die Suite auf oberster Ebene übergeben

Die Suite auf oberster Ebene verhält sich wie eine Standard-Tradefed-Konfiguration: Die vollständige Konfiguration einschließlich des Suite-Runners erhält alle Optionen wie eine Tradefed-Konfiguration ohne Suite.

Optionen an die Module übergeben

Module erhalten standardmäßig keine der Optionen, die an den Befehl übergeben werden. Sie müssen explizit auf die Nutzer ausgerichtet sein, damit diese die Optionen über die Option module-arg erhalten. Diese Isolation der Moduloptionen erleichtert die Fehlerbehebung.

Beispiel:

cts-tradefed run cts --module-arg <module-name>:<option-name>:<option-value>

cts-tradefed run cts --module-arg CtsGestureTestCases:collect-tests-only:true

Die Syntax sorgt dafür, dass das Zielmodul die angegebene Option erhält.

Es gibt zusätzliche Möglichkeiten, Optionen an Module zu übergeben, z. B. test-arg. Damit können Sie Optionen basierend auf dem Runner-Typ oder der Runner-Klasse an den Test-Runner jedes Moduls übergeben.

Beispiel:

cts-tradefed run cts --test-arg <test-class>:<option-name>:<option-value>

cts-tradefed run cts --test-arg com.android.tradefed.testtype.JarHosttest:collect-tests-only:true

Die Syntax bezieht sich nicht auf ein bestimmtes Modul, sondern auf alle Test-Runner der angegebenen Klasse. test-arg berücksichtigt nur Implementierungen von IRemoteTest als potenziellen Empfänger der Optionen.

Optionen an eine Java-Testklasse in einem java_test_host übergeben

Wenn Sie einer Java-Testklasse im Rahmen eines java_test_host-Build-Ziels ein @Option hinzufügen, müssen Sie die folgende Option verwenden, um sie einzufügen:

cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>

set-option bezieht sich in diesem Kontext auf die Option des HostTest-Runners aus dem Testharness, der Ihre Java-Klassen umschließt, um sie auszuführen.

Wenn Ihr JAR-Datei-Ziel für die Optionen mehrere Testklassen enthält, wird standardmäßig erwartet, dass für alle @option angegeben ist oder die folgende Syntax verwendet wird, um eine einzelne Klasse als Ziel festzulegen:

cts-tradefed run cts --module-arg <module-name>:set-option:<class-name>:<option-name>:<option-value>

Filter an die Suite übergeben

Um einige Tests aus einer Suite herauszufiltern, verwenden wir --include-filter und --exclude-filter, um einen bestimmten Test oder ein bestimmtes Modul einzuschließen bzw. auszuschließen. Der Ausschluss hat Priorität.

Sie verwenden dieses Format: [abi] <module-name> [test name]

Beispiele:

--include-filter CtsGestureTestCases

--include-filter armeabi-v7a CtsGestureTestCases

--include-filter armeabi-v7a CtsGestureTestCases android.gesture.cts.GestureTest#testGetStrokes