Primeiro, certifique-se de entender o Option Handling no Tradefed.
A configuração do conjunto descreve as duas camadas que existem na estrutura do conjunto:
- A suíte de nível superior
- Os módulos
Em um contexto não-suite Tradefed, não há necessidade de pensar sobre isso; cada opção vai para a invocação completa. Em um contexto de suíte, os módulos são mantidos isolados da suíte; portanto, nem todas as opções estão disponíveis em seu nível.
Opções de passagem para a suíte de nível superior
A suíte de nível superior se comporta como a configuração Tradefed padrão: a configuração completa, incluindo o executor da suíte, recebe todas as opções, como uma configuração Tradefed não-suite.
Passe opções para os módulos
Módulos por padrão não recebem nenhuma das opções passadas ao comando. Eles precisam ser explicitamente direcionados para receber as opções por meio da opção module-arg
. Esse isolamento das opções dos 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 receberá a opção fornecida.
Existem maneiras adicionais de passar opções para módulos, como test-arg
, que permite passar opções para o executor de teste de cada módulo com base no tipo ou 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 tem como alvo um módulo específico, mas sim todos os executores de teste de uma determinada classe. test-arg
considera apenas implementações de IRemoteTest como receptor potencial das opções.
Passando opção para uma classe de teste java em um java_test_host
Se você estiver adicionando uma @Option
à sua classe de teste java como parte de um destino de compilação java_test_host, você precisará usar 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 do HostTest do equipamento 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, espera-se que todas tenham a opção @ especificada ou use a seguinte sintaxe para direcionar uma única classe:
cts-tradefed run cts --module-arg <module-name>:set-option:<class-name>:<option-name>:<option-value>
Passe filtros para a suíte
Para filtrar alguns testes de um conjunto, usamos --include-filter
e --exclude-filter
para, respectivamente, 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