Stellen Sie zunächst sicher, dass Sie das Optionshandling in Tradefed verstehen.
Suite-Setup beschreibt die zwei Ebenen, die in der Suite-Struktur vorhanden sind:
- Die Suite auf höchstem Niveau
- Die Module
In einem Nicht-Suite-Tradefed-Kontext müssen Sie nicht darüber nachdenken; jede Option geht zum vollständigen Aufruf. In einem Suite-Kontext werden Module von der Suite isoliert gehalten; Daher sind nicht alle Optionen auf ihrer Ebene verfügbar.
Übergeben Sie Optionen an die Suite der obersten Ebene
Die Top-Level-Suite verhält sich wie eine Standard-Tradefed-Konfiguration: Die vollständige Konfiguration einschließlich des Suite-Runners erhält alle Optionen wie eine Nicht-Suite-Tradefed-Konfiguration.
Übergeben Sie Optionen an die Module
Module erhalten standardmäßig keine der an den Befehl übergebenen Optionen. Sie müssen explizit darauf ausgerichtet werden, die Optionen über die Option module-arg
zu erhalten. Diese Isolation der Moduloptionen erleichtert das Debuggen.
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
, mit dem Sie Optionen an den Test-Runner jedes Moduls basierend auf dem Runner-Typ oder der Klasse übergeben können.
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 Testläufer der angegebenen Klasse. test-arg
berücksichtigt nur Implementierungen von IRemoteTest als potenzielle Empfänger der Optionen.
Übergabeoption an eine Java-Testklasse in einem java_test_host
Wenn Sie Ihrer Java- @Option
als Teil eines java_test_host-Build-Ziels eine @Option hinzufügen, müssen Sie diese Option wie folgt einfü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-Runners aus der Testumgebung, die Ihre Java-Klassen umschließt, um sie auszuführen.
Wenn Ihr JAR-Dateiziel für die Optionen mehrere Testklassen enthält, wird standardmäßig erwartet, dass sie alle die @option angegeben haben oder die folgende Syntax verwenden, um auf eine einzelne Klasse abzuzielen:
cts-tradefed run cts --module-arg <module-name>:set-option:<class-name>:<option-name>:<option-value>
Übergeben Sie Filter an die Suite
Um einige Tests aus einer Suite zu filtern, verwenden wir --include-filter
und --exclude-filter
, um einen bestimmten Test oder ein bestimmtes Modul einzubeziehen oder auszuschließen. Ausschluss hat Vorrang.
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