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