Übergeben Sie Optionen und Filter an Suite und Module

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

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