Transmitir opções e filtros para pacotes e módulos

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