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

Primeiro, entenda como lidar com as 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 que não é de pacote do Tradefed, não há necessidade de pensar sobre isso. todo(a) vai para a invocação completa. Em um contexto de pacote, os módulos são mantidos isolados da sala, portanto, nem todas as opções estão disponíveis em seu nível.

Passe opções para a suíte 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 configuração não Suite 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 visado receba a opção fornecida.

Há outras maneiras de transmitir opções para módulos como test-arg, que permite transmitir opções ao executor de testes de cada módulo com base no ou classe.

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 específica. 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 à classe de teste Java como parte de um java_test_host, use o código abaixo para injetá-lo. 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 das opções tiver 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