Passer les options et les filtres à la suite et aux modules

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

La configuration de la suite décrit les deux couches qui existent dans la structure de la suite :

  • La suite de haut niveau
  • Les modules

Dans un contexte Tradefed hors suite, il n'y a pas lieu d'y penser ; chaque option va à l'invocation complète. Dans un contexte de suite, les modules sont maintenus isolés de la suite ; toutes les options ne sont donc pas disponibles à leur niveau.

Passez les options à la suite de niveau supérieur

La suite de niveau supérieur se comporte comme une configuration Tradefed standard : la configuration complète, y compris l'exécuteur de suite, reçoit toutes les options comme une configuration Tradefed sans suite.

Passer les options aux modules

Les modules par défaut ne reçoivent aucune des options passées à la commande. Ils doivent être explicitement ciblés pour recevoir les options via l'option module-arg . Cette isolation des options des modules facilite le débogage.

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 du type ou de la classe du lanceur.

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 testeurs de la classe donnée. test-arg considère uniquement les implémentations de IRemoteTest comme récepteur potentiel des options.

Passer l'option à une classe de test Java dans un java_test_host

Si vous ajoutez une @Option à votre classe de test Java dans le cadre d'une cible de génération java_test_host, vous devrez utiliser ce qui suit pour injecter cette option :

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

set-option dans ce contexte est l'option de l'exécuteur HostTest du harnais de test qui encapsule vos classes Java pour les exécuter.

Passer les filtres à la suite

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

Ils utilisent ce format : [abi] <module-name> [test name]

Exemples:

--include-filter CtsGestureTestCases

--include-filter armeabi-v7a CtsGestureTestCases

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