Esta seção explica como realizar e contribuir com os testes da Trade Federation depois de fazer uma alteração no projeto. Isso inclui:
- Onde adicionar as novas classes de teste de unidade
- Como executar testes de unidade no Eclipse e fora do ambiente de desenvolvimento integrado do Eclipse
- Onde adicionar testes funcionais
- Como executar os testes funcionais
- Como executar alguma 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 (em inglês)
IMPORTANTE: adicionar as novas classes de teste de unidade a esses locais resultará em eles são veiculados automaticamente no pré-envio sem configuração adicional.
Executar testes de unidade
Todos os testes de unidade e funcionais do AOSP para a Trade Federation estão localizados em
as
tools/tradefederation/core/tests
projeto.
Dentro do Eclipse, para executar um teste de unidade individual, basta clicar com o botão direito no teste e selecione Run As > JUnit. Para executar todos os testes de unidade, execute o com.android.tradefed.UnitTests.
Você também pode iniciar o teste de unidade na linha de comando na origem do Tradefed.
árvore após a construção, assim:
tools/tradefederation/core/javatests/run_tradefed_tests.sh
Os testes de unidade podem ser executados de forma independente, mas é necessário executar testes funcionais
ao usar a própria Trade Federation; eles exigem um dispositivo Android. Todos funcionais
devem seguir a convenção de nomenclatura *FuncTest
.
Verificar os resultados dos testes de unidade
Ao executar run_tradefed_tests.sh
, os testes de unidade executam todas as partes do
o arcabouço de testes, incluindo algumas condições de erro. A saída detalhada vai aparecer
ao console, incluindo stack traces.
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 alteração local verifique se os testes foram corrigidos.
Adicionar testes funcionais
Se o teste funcional envolver um dispositivo (usa qualquer API
ITestDevice
), o do Google Workspace fica emcom.android.tradefed.DeviceFuncTests
. Caso contrário, a definição do conjunto estará localizada emcom.android.tradefed.FuncTests
.Se fizer sentido colocar os métodos de teste em uma das subclasses existentes do pacote, prefiro adicioná-lo lá. Caso contrário, adicione uma nova classe à Google Workspace.
Em ambos os casos, ao adicioná-lo ao pacote, o teste é 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 a
adb
e, se necessáriofastboot
estão no PATH do Eclipse. A maneira mais fácil de fazer isso é lançar Eclipse a partir de uma configuração do shell com o PATH adequado. - Criar um aplicativo Java. Execute a configuração em Executar > Executar personalizadas.
- 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 Arguments:
host --class <full path of test class to run>
- Clique em Executar.
Para executar testes funcionais fora do Eclipse.
- Criar Federação Comercial.
- Conecte um dispositivo Android ao host.
- Run
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
- Você também pode escolher o dispositivo anexando
--serial <serial no>
como ele aparece na saída deadb devices
.
Executar testes de pré-envio do TF em mudanças locais
Se você quiser executar de forma semelhante ao pré-envio do TF, use este código:
tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh
Isso acionará todos os testes de pré-envio do TF no TF criado localmente para ajudam a validar se a mudança não está corrompendo nenhum teste.
Os testes de pré-envio do TF são um superconjunto dos testes de unidade acima, mas são mais lentos. executá-las. Por isso, 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 do CL.