Optionen und Filter an Suite und Module übergeben

Machen Sie sich zuerst mit dem Umgang mit Optionen im Tradefed-Modell vertraut.

Die Suite-Einrichtung beschreibt die beiden Ebenen der Suitenstruktur:

  • Suite der obersten 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 einer Suite werden Module von der Suite isoliert, sodass nicht alle Optionen auf ihrer Ebene verfügbar sind.

Optionen an die Suite der obersten Ebene übergeben

Die Suite der obersten Ebene verhält sich wie die standardmäßige Tradefed-Konfiguration: Die vollständige Konfiguration einschließlich des Suite-Runners erhält alle Optionen wie eine Tradefed-Konfiguration, die nicht der Suite zugewiesen ist.

Optionen an die Module weitergeben

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 sorgt dafür, dass das anvisierte Modul 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 Kontext die Option des HostTest-Runners aus dem Test-Harness, der Ihre Java-Klassen zur Ausführung zusammenfasst.

Wenn das JAR-Dateiziel für die Optionen mehrere Testklassen enthält, wird standardmäßig für alle die Option @option angegeben. Sie können auch die folgende Syntax verwenden, um eine einzelne Klasse anzugeben:

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 folgendes 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