Innanzitutto, assicurati di comprendere la gestione delle opzioni in Tradefed.
La configurazione della suite descrive i due livelli esistenti nella struttura della suite:
- La suite di primo livello
- I moduli
In un contesto TradeFed non della suite, non è necessario pensarci; ogni opzione passa all'invocazione completa. In un contesto di suite, i moduli vengono mantenuti isolati dalla suite, pertanto non tutte le opzioni sono disponibili a questo livello.
Passare le opzioni alla suite di primo livello
La suite di primo livello si comporta come la configurazione standard di TradeFed: la configurazione completa, incluso il programma di esecuzione della suite, riceve tutte le opzioni come una configurazione TradeFed non in suite.
Passare le opzioni ai moduli
Per impostazione predefinita, i moduli non ricevono nessuna delle opzioni passate al comando.
Devono essere scelti come target esplicitamente per ricevere le opzioni tramite l'opzionemodule-arg
. Questo isolamento delle opzioni dei moduli semplifica il debugging.
Esempio:
cts-tradefed run cts --module-arg <module-name>:<option-name>:<option-value>
cts-tradefed run cts --module-arg CtsGestureTestCases:collect-tests-only:true
La sintassi garantisce che il modulo scelto come target riceva l'opzione specificata.
Esistono altri modi per passare opzioni ai moduli, ad esempio test-arg
, che consente di passare opzioni al programma di test di ogni modulo in base al tipo o alla classe del programma.
Esempio:
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 sintassi non ha come target un determinato modulo, ma tutti i runner di test
della classe specificata. test-arg
prende in considerazione solo le implementazioni di
IRemoteTest
come potenziali destinatari delle opzioni.
Passare opzioni a una classe di test Java in un java_test_host
Se aggiungi un @Option
alla tua classe di test Java nell'ambito di un target di compilazione java_test_host, dovrai utilizzare quanto segue per iniettare l'opzione:
cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>
In questo contesto, set-option è l'opzione del runner HostTest del test harness che avvolge le classi Java per eseguirle.
Se il file jar di destinazione per le opzioni contiene più classi di test, per impostazione predefinita è previsto che tutte abbiano l'opzione @specificata o utilizzino la seguente sintassi per avere come target una singola classe:
cts-tradefed run cts --module-arg <module-name>:set-option:<class-name>:<option-name>:<option-value>
Passare i filtri alla suite
Per filtrare alcuni test di una suite, utilizziamo --include-filter
e
--exclude-filter
per forzare rispettivamente l'inclusione o l'esclusione di un determinato test
o modulo. L'esclusione ha la priorità.
Utilizzano questo formato: [abi] <module-name> [test name]
Esempi:
--include-filter CtsGestureTestCases
--include-filter armeabi-v7a CtsGestureTestCases
--include-filter armeabi-v7a CtsGestureTestCases android.gesture.cts.GestureTest#testGetStrokes