Passe opções e filtros para suíte e módulos

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