Esta seção explica como executar e contribuir com os testes do Trade Federation depois de fazer uma mudança no projeto. Isso inclui:
- Onde adicionar as novas classes de teste de unidade
- Execução de testes de unidade no Eclipse e fora do ambiente de desenvolvimento integrado do Eclipse
- Onde adicionar testes funcionais
- Execução dos testes funcionais
- Execução de parte da validação 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: se você adicionar as novas classes de teste de unidade a esses locais, elas serão executadas automaticamente no pré-envio sem configuração adicional.
Executar testes unitários
Todos os testes de unidade e funcionais do AOSP para o Trade Federation estão localizados em
o
tools/tradefederation/core/tests
projeto.
No Eclipse, para executar um teste de unidade individual, clique com o botão direito do mouse no teste e selecione Run As > JUnit. Para executar todos os testes de unidade, execute o pacote com.android.tradefed.UnitTests.
Você também pode iniciar o teste de unidade na linha de comando na árvore de origem do Tradefed após a criação, da seguinte maneira:
tools/tradefederation/core/javatests/run_tradefed_tests.sh
Os testes de unidade podem ser executados de forma independente, mas os testes funcionais precisam ser executados usando o próprio Trade Federation. Eles exigem um dispositivo Android. Todos os testes funcionais precisam seguir a convenção de nomenclatura *FuncTest.
Verificar os resultados dos testes de unidade
Ao executar run_tradefed_tests.sh, os testes de unidade exercem todas as partes da estrutura de testes, incluindo algumas condições de erro. Ele vai imprimir a saída detalhada no console, incluindo rastreamentos de pilha.
O resumo final dos resultados vai indicar se ocorreu uma falha ou não.
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 serem aprovados. Portanto, se ocorrer alguma falha na mudança local, corrija os testes.
Adicionar testes funcionais
Se o teste funcional envolver um dispositivo (usar qualquer API
ITestDevice), a definição do pacote estará localizada emcom.android.tradefed.DeviceFuncTests. Caso contrário, a definição do pacote estará localizada emcom.android.tradefed.FuncTests.Se os métodos de teste fizerem sentido para serem colocados em uma das subclasses de pacote atuais, adicione-os lá. Caso contrário, adicione uma nova classe ao pacote aplicável.
Em ambos os casos, ao adicioná-lo ao pacote, o teste será executado automaticamente no pipeline de CI com os outros testes funcionais.
Executar testes funcionais
Para executar um teste funcional no Eclipse:
- Verifique se um dispositivo está conectado ao host e se
adbe, se necessário,fastbootestão no PATH do Eclipse. A maneira mais fácil de fazer isso é iniciar o Eclipse em uma configuração de shell com o PATH adequado. - Crie um aplicativo Java. Execute a configuração em Run > Run configurations.
- Defina o projeto como
tradefed-testse a classe principal comocom.android.tradefed.command.CommandRunner. - Execute
m tradefed-all. - Forneça os seguintes argumentos de linha de comando na guia Arguments:
host --class <full path of test class to run> - Clique em Run.
Para executar testes funcionais fora do Eclipse.
- Crie o Trade Federation.
- 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.
Executar testes de pré-envio do TF em mudanças locais
Se você quiser executar de maneira semelhante ao pré-envio do TF, use o seguinte:
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
Isso vai acionar todos os testes de pré-envio do TF no TF criado localmente para ajudar a validar se a mudança 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 serem executados. Portanto, recomendamos 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 da CL.