Transmettre des options et des filtres à la suite et aux modules

Tout d'abord, assurez-vous de bien comprendre la gestion des options. dans Tradefed.

La section Configuration de la suite décrit les deux couches de la structure de la suite:

  • La suite de premier niveau
  • Les modules

Dans un contexte non-suite Tradefed, il n'est pas nécessaire d'y penser ; toutes les permet d'accéder à l'appel complet. Dans un contexte de suite, les modules sont conservés sont isolés de la suite. Par conséquent, toutes les options ne sont pas disponibles à leur niveau.

Transmettre les options à la suite de premier niveau

La suite de premier niveau se comporte comme la configuration Tradefed standard : configuration incluant l'exécuteur de suite reçoit toutes les options, comme un une configuration Tradefed sans suite.

Transmettre des options aux modules

Par défaut, les modules ne reçoivent aucune des options transmises à la commande. Ils doivent être ciblés explicitement pour recevoir les options via la Option module-arg. Cette isolation des options du module facilite le débogage plus facile.

Exemple :

cts-tradefed run cts --module-arg <module-name>:<option-name>:<option-value>

cts-tradefed run cts --module-arg CtsGestureTestCases:collect-tests-only:true

La syntaxe garantit que le module ciblé recevra l'option donnée.

Il existe d'autres moyens de transmettre des options à des modules tels que test-arg, qui vous permet de transmettre des options au lanceur de test de chaque module en fonction de l'exécuteur. un type ou une classe.

Exemple :

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

La syntaxe ne cible pas un module particulier, mais plutôt tous les exécuteurs de test. de la classe donnée. test-arg ne prend en compte que les implémentations IRemoteTest en tant que destinataire potentiel des options.

Transmettre des options à une classe de test Java dans un objet java_test_host

Si vous ajoutez un @Option à votre classe de test Java dans le cadre d'un java_test_host, vous devez utiliser la commande suivante pour injecter cette l'une des options suivantes:

cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>

Dans ce contexte, set-option correspond à l'option de l'exécuteur HostTest du groupe de test. qui encapsule vos classes Java pour les exécuter.

si la cible du fichier JAR pour les options contient plusieurs classes de test, Par défaut, ils sont tous censés avoir l'option @option spécifiée ou utiliser la pour cibler une seule classe:

cts-tradefed run cts --module-arg <module-name>:set-option:<class-name>:<option-name>:<option-value>

Transmettre des filtres à la suite

Pour filtrer certains tests d'une suite, nous utilisons --include-filter et --exclude-filter pour forcer respectivement à inclure ou exclure un test particulier ou un module. L'exclusion est prioritaire.

Elles utilisent le format suivant: [abi] <module-name> [test name]

Exemples :

--include-filter CtsGestureTestCases

--include-filter armeabi-v7a CtsGestureTestCases

--include-filter armeabi-v7a CtsGestureTestCases android.gesture.cts.GestureTest#testGetStrokes