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

Primeiro, assegure-se de entender a manipulação de opções no Tradefed.

A configuração do conjunto descreve as duas camadas existentes na estrutura do conjunto:

  • A suíte de alto nível
  • 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.

Passe opções para o pacote 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.

Passar opções para os módulos

Os módulos por padrão não recebem nenhuma das opções passadas ao comando. Eles precisam ser direcionados explicitamente para receber as opções por meio da 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 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 visa um módulo específico, mas sim todos os executores de teste da classe especificada. test-arg considera apenas implementações de IRemoteTest como potencial receptor das opções.

Passar 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 compilação java_test_host, 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 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 todos tenham a @option 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 determinado teste 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