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 sono tenuti isolati dalla suite, per cui non tutte le opzioni sono disponibili al loro 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 come test-arg
, che
ti consentono di passare le opzioni al runner del test di ciascun modulo in base al tipo
o alla classe.
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 è indirizzata a un particolare modulo, ma a tutti i runner del test della classe specificata. test-arg
prende in considerazione solo le implementazioni di
IRemoteTest
come potenziali destinatari delle opzioni.
Passare le 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>
Passa 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à.
Usano 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