Primeiro, entenda a Gestão de opções no Tradefed.
A configuração do pacote descreve as duas camadas que existem na estrutura do pacote:
- O pacote de nível superior
- Os módulos
Em um contexto Tradefed que não é de suíte, não é necessário pensar nisso. Todas as opções vão para a invocação completa. Em um contexto de pacote, os módulos são mantidos isolados do pacote. Portanto, nem todas as opções estão disponíveis no nível deles.
Transmitir opções para o pacote de nível superior
O pacote de nível superior se comporta como uma configuração padrão do Tradefed: a configuração completa, incluindo o executor de pacotes, recebe todas as opções, como uma configuração do Tradefed sem pacote.
Transmitir opções para os módulos
Por padrão, os módulos não recebem nenhuma das opções transmitidas ao comando.
Eles precisam ser segmentados explicitamente para receber as opções pela opção
module-arg
. Esse isolamento das opções de módulos facilita a depuração.
Exemplo:
cts-tradefed run cts --module-arg <module-name>:<option-name>:<option-value>
cts-tradefed run cts --module-arg CtsGestureTestCases:collect-tests-only:true
A sintaxe garante que o módulo de destino receba a opção especificada.
Há outras maneiras de transmitir opções para módulos, como test-arg
, que
permite transmitir opções para o executor de teste de cada módulo com base no tipo
ou na classe do executor.
Exemplo:
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
A sintaxe não é destinada a um módulo específico, mas a todos os executores de teste
da classe. test-arg
considera apenas implementações de
IRemoteTest
como possíveis receptores das opções.
Transmitir opções para uma classe de teste Java em um java_test_host
Se você estiver adicionando um @Option
à sua classe de teste Java como parte de um
destino de build java_test_host, use o seguinte para injetar essa
opção:
cts-tradefed run cts --module-arg <module-name>:set-option:<option-name>:<option-value>
set-option, neste contexto, é a opção do HostTest runner do harness de teste que envolve suas classes Java para executá-las.
Se o destino do arquivo JAR para as opções contiver várias classes de teste, por padrão, todas elas precisarão ter a @option especificada ou usar a sintaxe a seguir para segmentar uma única classe:
cts-tradefed run cts --module-arg <module-name>:set-option:<class-name>:<option-name>:<option-value>
Transmitir filtros para o pacote
Para filtrar alguns testes de um pacote, usamos --include-filter
e
--exclude-filter
para forçar a inclusão ou exclusão de um teste
ou módulo específico. A exclusão tem prioridade.
Eles usam este formato: [abi] <module-name> [test name]
Exemplos:
--include-filter CtsGestureTestCases
--include-filter armeabi-v7a CtsGestureTestCases
--include-filter armeabi-v7a CtsGestureTestCases android.gesture.cts.GestureTest#testGetStrokes