Primeiro, entenda a Manipulaçã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 não pacote do Tradefed, não é necessário pensar sobre isso: 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.
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: a configuração completa, incluindo o executor do pacote, recebe todas as opções, como uma configuração do Tradefed não 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 usando a 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 vai receber a opção especificada.
Há outras maneiras de transmitir opções para módulos, como test-arg
, que
permitem transmitir opções para o executor de testes 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 testes
da classe especificada. 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, respectivamente. 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