Informieren Sie sich zuerst über die Optionenverwaltung in Tradefed.
Die Suite-Einrichtung beschreibt die beiden Ebenen der Suitenstruktur:
- Suite der obersten Ebene
- Die Module
In einem Tradefed-Kontext, der nicht zur Suite gehört, müssen Sie sich darüber keine Gedanken machen. Bei jeder Option wird die vollständige Aufrufabfolge ausgeführt. 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 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 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 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 für alle die @option angegeben. Sie können auch die folgende Syntax verwenden, um eine einzelne Klasse anzusteuern:
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 einzu- oder auszuschließen. Der Ausschluss hat Vorrang.
Sie werden in folgendem Format angegeben: [abi] <module-name> [test name]
Beispiele:
--include-filter CtsGestureTestCases
--include-filter armeabi-v7a CtsGestureTestCases
--include-filter armeabi-v7a CtsGestureTestCases android.gesture.cts.GestureTest#testGetStrokes