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