Esta seção explica como executar e contribuir com os testes da Federação de Comércio depois de fazer uma alteração no projeto. Isso inclui:
- Onde adicionar as novas classes de teste de unidade
- Executando testes de unidade no Eclipse e fora do Eclipse IDE
- Onde adicionar testes funcionais
- Executando os testes funcionais
- Executando algumas das validações de pré-envio do TF localmente
Adicionar testes de unidade
No Android Open Source Project (AOSP), adicione a classe de testes de unidade em: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java
IMPORTANTE: Adicionar suas novas classes de teste de unidade a esses locais fará com que elas sejam executadas automaticamente no pré-envio sem configuração adicional.
Executar testes de unidade
Todos os testes unitários e funcionais do AOSP para Trade Federation estão localizados no projeto tools/tradefederation/core/tests
.
Dentro do Eclipse, para executar um teste de unidade individual, basta clicar com o botão direito do mouse no teste e selecionar Executar como > JUnit . Para executar todos os testes de unidade, execute o conjunto com.android.tradefed.UnitTests .
Você também pode iniciar o teste de unidade a partir da linha de comando na árvore de origem do Tradefed após a compilação, assim: tools/tradefederation/core/javatests/run_tradefed_tests.sh
Os testes unitários podem ser executados de forma independente, mas os testes funcionais devem ser executados usando a própria Federação de Comércio; eles exigem um dispositivo Android. Todos os testes funcionais devem seguir a convenção de nomenclatura *FuncTest
.
Verifique os resultados dos testes de unidade
Ao executar run_tradefed_tests.sh
, os testes de unidade estão exercitando todas as partes do equipamento de teste, incluindo algumas condições de erro. Ele imprimirá a saída detalhada no console, incluindo rastreamentos de pilha.
O resumo final dos resultados indicará se ocorreu ou não uma falha.
Exemplo de resumo final no console:
12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]
Todos os testes são mantidos para passar, portanto, se ocorrer alguma falha em sua mudança local, certifique-se de que os testes sejam corrigidos.
Adicionar testes funcionais
Se seu teste funcional envolve um dispositivo (usa qualquer API
ITestDevice
), a definição do conjunto está localizada emcom.android.tradefed.DeviceFuncTests
. Caso contrário, a definição do conjunto está localizada emcom.android.tradefed.FuncTests
.Se seus métodos de teste fizerem sentido para colocar em uma das subclasses do conjunto existente, prefira adicioná-lo lá. Caso contrário, sinta-se à vontade para adicionar uma nova classe ao conjunto aplicável.
Em ambos os casos, ao adicioná-lo ao conjunto, seu teste é executado automaticamente no pipeline de CI com os outros testes funcionais.
Execute testes funcionais
Para executar um teste funcional do Eclipse:
- Certifique-se de que um dispositivo esteja conectado ao host e que
adb
e, se necessário,fastboot
estejam no PATH do Eclipse. A maneira mais fácil de fazer isso é iniciar o Eclipse a partir de uma configuração de shell com o PATH adequado. - Crie um aplicativo Java. Execute a configuração em Executar > Executar configurações .
- Defina o projeto como
tradefed-tests
e a classe principal comocom.android.tradefed.command.CommandRunner
. - Execute
m tradefed-all
. - Forneça os seguintes argumentos de linha de comando na guia Argumentos :
host --class <full path of test class to run>
- Clique em Executar .
Para executar testes funcionais fora do Eclipse.
- Construir Federação de Comércio.
- Conecte um dispositivo Android ao host.
- Execute
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
- Opcionalmente, escolha o dispositivo anexando
--serial <serial no>
conforme aparece na saída deadb devices
.
Executando testes de pré-envio do TF em relação a alterações locais
Se você quiser executar de maneira semelhante ao pré-envio do TF, use isto:
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
Isso acionará todos os testes de pré-envio do TF em relação ao TF criado localmente para ajudá-lo a validar se sua alteração não está interrompendo nenhum teste.
Os testes de pré-envio do TF são um superconjunto dos testes de unidade acima, mas são mais lentos para executá-los. Portanto, é recomendável executar os testes de unidade durante o desenvolvimento para uma validação mais rápida e executar os pré-envios antes de fazer o upload do CL.