Optionen und Filter an Suite und Module übergeben

Informieren Sie sich zuerst über die Optionenverwaltung in Tradefed.

Die Suite-Einrichtung beschreibt die beiden Ebenen der Suitenstruktur:

  • Die Suite auf oberster Ebene
  • Die Module

Bei einem Non-Suite Tradefed-Kontext müssen Sie nicht darüber nachdenken. Jede Option wird zum vollständigen Aufruf gesendet. In einem Suite-Kontext sind Module von der Suite getrennt. Daher sind nicht alle Optionen auf dieser Ebene verfügbar.

Optionen an die Suite der obersten 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 an den Befehl übergebenen Optionen. Sie müssen explizit ausgewählt werden, damit sie die Optionen über die Option module-arg sehen. Diese Isolierung 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 stellt sicher, dass das Zielmodul die angegebene Option erhält.

Es gibt weitere Möglichkeiten, Optionen an Module zu übergeben, z. B. test-arg. Damit können Sie dem Test-Runner jedes Moduls Optionen basierend auf dem Typ oder der Klasse des Runners ü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 richtet sich nicht an ein bestimmtes Modul, sondern an alle Testläufer der angegebenen Klasse. test-arg betrachtet nur Implementierungen von IRemoteTest als potenzielle Empfänger der Optionen.

Optionen an eine Java-Testklasse in einem java_test_host übergeben

Wenn Sie Ihrer Java-Testklasse im Rahmen eines java_test_host-Buildziels ein @Option hinzufügen, müssen Sie Folgendes verwenden, um diese Option einzufügen:

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

set-option ist in diesem Zusammenhang die Option des HostTest-Ausführprogramms aus dem Test-Harness, mit der Ihre Java-Klassen zur Ausführung verpackt werden.

Wenn das JAR-Dateiziel für die Optionen mehrere Testklassen enthält, wird standardmäßig erwartet, dass alle die @option angegeben haben oder die folgende Syntax verwenden, um eine einzelne Klasse anzusprechen:

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 jeweils zu erzwingen oder auszuschließen. Der Ausschluss hat Vorrang.

Sie haben 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