Primeiro, entenda a Manipulação de opções no Tradefed.
Configuração do pacote descreve as duas camadas que existem no Estrutura do pacote:
- A suíte de nível superior
- Os módulos
Em um contexto de 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 a configuração padrão do Tradefed: o incluindo o executor do pacote recebe todas as opções, como uma sem a configuração do Tradefed.
Transmitir opções para os módulos
Por padrão, os módulos não recebem nenhuma das opções passadas para o comando.
Eles precisam ser segmentados explicitamente para receber as opções por meio do
module-arg
. Esse isolamento das opções dos módulos torna a depuração
mais fácil.
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 as implementações de
Teste remoto
como possível destinatário 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 executor HostTest do arcabouço de testes. que une 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, espera-se que todos tenham a @option especificada ou usem o 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 específico, respectivamente.
ou módulo. 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