Machen Sie sich zuerst mit der Optionsverarbeitung in Tradefed vertraut.
Unter Suite-Einrichtung werden die beiden Ebenen beschrieben, die in der Suite-Struktur vorhanden sind:
- Die Suite auf oberster Ebene
- Die Module
In einem Tradefed-Kontext ohne Suite ist das nicht erforderlich. Jede Option wird an den vollständigen Aufruf übergeben. In einem Suite-Kontext werden Module von der Suite isoliert. Daher sind nicht alle Optionen auf dieser Ebene verfügbar.
Optionen an die Suite auf oberster Ebene übergeben
Die Suite auf oberster Ebene verhält sich wie eine Standardkonfiguration von Tradefed: 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 als Ziel angegeben werden, um die Optionen über die Option module-arg zu 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 weitere 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 zielt nicht auf ein bestimmtes Modul ab, sondern auf alle Test-Runner der angegebenen Klasse. test-arg berücksichtigt nur Implementierungen von IRemoteTest
(Dokumentation, Quellcode) oder ITargetPreparer (Dokumentation,
Quellcode) 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-Build-Ziels eine @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 der Test-Harness , die Ihre Java-Klassen umschließt, um sie auszuführen.
Wenn Ihr JAR-Datei-Ziel für die Optionen mehrere Testklassen enthält, müssen sie standardmäßig alle die Option „@option“ enthalten oder die folgende Syntax verwenden, um eine einzelne Klasse als Ziel 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 zu filtern, verwenden wir --include-filter und --exclude-filter, um einen bestimmten Test oder ein bestimmtes Modul einzuschließen oder 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