Übergeben Sie Optionen und Filter an Suite und Module.Übergeben Sie Optionen und Filter an Suite und Module

Stellen Sie zunächst sicher, dass Sie die Optionshandhabung in Tradefed verstehen.

Das Suite-Setup beschreibt die zwei Ebenen, die in der Suite-Struktur vorhanden sind:

  • Die Suite der obersten Ebene
  • Die Module

In einem nicht zur Suite gehörenden Tradefed-Kontext besteht kein Grund, darüber nachzudenken. Jede Option führt 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 angesprochen werden, um die Optionen über die Option module-arg zu erhalten. Diese Isolierung 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 zusätzliche Möglichkeiten, Optionen an Module zu übergeben, z. B. test-arg , mit dem Sie Optionen basierend auf dem Runner-Typ oder der Runner-Klasse an den Test-Runner jedes Moduls ü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.

Übergeben Sie Optionen an eine Java-Testklasse in einem java_test_host

Wenn Sie Ihrer Java-Testklasse als Teil eines Build-Ziels java_test_host 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 Zusammenhang die Option des HostTest-Runners aus der Testumgebung, der 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 für alle die @option angegeben ist, oder verwenden Sie die folgende Syntax, um eine einzelne Klasse als Ziel zu verwenden:

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 das Einschließen bzw. Ausschließen eines bestimmten Tests oder Moduls zu erzwingen. 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
,

Stellen Sie zunächst sicher, dass Sie die Optionshandhabung in Tradefed verstehen.

Das Suite-Setup beschreibt die zwei Ebenen, die in der Suite-Struktur vorhanden sind:

  • Die Suite der obersten Ebene
  • Die Module

In einem nicht zur Suite gehörenden Tradefed-Kontext besteht kein Grund, darüber nachzudenken. Jede Option führt 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 angesprochen werden, um die Optionen über die Option module-arg zu erhalten. Diese Isolierung 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 zusätzliche Möglichkeiten, Optionen an Module zu übergeben, z. B. test-arg , mit dem Sie Optionen basierend auf dem Runner-Typ oder der Runner-Klasse an den Test-Runner jedes Moduls ü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.

Übergeben Sie Optionen an eine Java-Testklasse in einem java_test_host

Wenn Sie Ihrer Java-Testklasse als Teil eines Build-Ziels java_test_host 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 Zusammenhang die Option des HostTest-Runners aus der Testumgebung, der 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 für alle die @option angegeben ist, oder verwenden Sie die folgende Syntax, um eine einzelne Klasse als Ziel zu verwenden:

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 das Einschließen bzw. Ausschließen eines bestimmten Tests oder Moduls zu erzwingen. 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