Configurar o Eclipse

Siga estas etapas para configurar o Tradefed usando o Eclipse.

Crie um espaço de trabalho separado para desenvolver o Trade Federation. Não reutilize um espaço de trabalho já usado para o desenvolvimento de dispositivos Android.

Se necessário, faça o download do Eclipse IDE for Java developers em: eclipse.org/downloads

Criar projetos

  1. Execute o comando "make" uma vez na linha de comando. Isso vai criar bibliotecas externas dependentes dos projetos abaixo.
  2. Defina a variável de classpath TRADEFED_ROOT em Window > Preferences > Java > Build Path> Classpath Variables e aponte para a raiz de origem do Tradefed.
  3. Defina a variável de caminho TRADEFED_ROOT em Window > Preferences > General > Workspace > Linked Resources e aponte para a raiz de origem do Tradefed.
  4. Use o assistente File > Import...-> General > Existing Projects into workspace" para importar esses projetos Java de código aberto nos seguintes caminhos:

    prebuilts/misc/common/ddmlib\*
    tools/loganalysis
    tools/loganalysis/tests
    tools/tradefederation/core
    tools/tradefederation/core/tests
    tools/tradefederation/contrib
    tools/tradefederation/core/remote
    platform_testing/libraries/health/runners/longevity/host
    platform_testing/libraries/annotations
    platform_testing/libraries/health/composers/host
    
  5. Opcional: se você quiser ver o código-fonte ddmlib, anexe o código-fonte de uma ramificação de ferramentas não agrupadas, como /platform/tools/base/tools_r22/ddmlib/src/main/java/com/android/ddmlib/IDevice.java.

  6. Opcional: se você também quiser que os projetos de harness do CTS sejam carregados, importe:

    test/suite_harness/common/util
    test/suite_harness/common/host-side/util
    test/suite_harness/common/host-side/tradefed
    

Formatação automática

OBSERVAÇÃO: os arquivos necessários estão em development/ide/eclipse na árvore de origem da plataforma completa. Portanto, você precisará fazer o check-out de uma ramificação da plataforma, como android-latest-release para receber esses arquivos: /development/android17-release/ide/eclipse/

Use arquivos de preferência no Eclipse para definir automaticamente o formatador no guia de estilo do Android. Para fazer isso no Studio:

  1. Acesse Window > Preferences > Java > Code Style.
  2. Em Formatter, importe o arquivo android-formatting.xml.
  3. Em Organize > Imports, importe o arquivo android.importorder.

Remover espaços em branco à direita

Para forçar o Eclipse a remover todos os espaços em branco à direita:

  1. Acesse Window > Preferences -> Java -> Editor -> Save Actions.
  2. Em seguida, Additional Actions -> Configure -> Code > Organizing tab -> Formatter.
  3. Marque Remove Trailing Whitespace.
  4. Clique em Apply and Close.

Verificar o estilo de código

Ao enviar uma lista de mudanças, um hook de pré-upload automático será executado para verificar o formato do código: google-java-format

Isso ajuda a formatar o código para o padrão comum.

Depurar o Eclipse

Se você quiser executar o código TF em um depurador no Eclipse, recomendamos que primeiro crie um teste de unidade para o código em questão, porque essa será a maneira mais simples e rápida de exercitar a funcionalidade.

Para depurar um teste de unidade TF, clique com o botão direito do mouse nele e selecione Debug As > JUnit test.

Para depurar um teste funcional do TF, siga as instruções na seção anterior para executar um teste funcional, mas use o menu Run > Debug configurations.

Para depurar o programa TF em si, ao executar qualquer configuração, siga as instruções na seção anterior para executar um teste funcional, mas forneça os argumentos de linha de comando para a configuração que você quer executar na etapa 4. Portanto, para depurar a configuração "instrument", acesse o menu Run > Debug configuration e defina a guia Arguments na configuração de depuração do Eclipse como-- package <package to run> instrument.

Depuração remota com o Eclipse

Siga estas etapas para depurar remotamente uma sessão do Tradefed iniciada na linha de comando tradefed.sh:

  1. Inicie o tradefed.sh com a flag de depuração: TF_DEBUG=1 tradefed.sh
  2. Aguarde até ver esse prompt da JVM: Listening for transport dt_socket at address: 10088 Isso significa que a JVM está aguardando a conexão do depurador para conectar na porta 10088.
  3. Conecte-se com a depuração remota do Eclipse no menu principal: selecione Run > Debug Configurations....
  4. Na caixa de diálogo pop-up, selecione Remote Java Application no menu à esquerda.
  5. Clique no ícone New launch configuration na barra de ações.
  6. Dê o nome que quiser à configuração e selecione tradefederation como o projeto.
  7. Preencha a porta usando o endereço fornecido anteriormente.
  8. Mude para a guia Source e adicione os projetos tradefederation e google-tradefed ao Source Lookup Path.
  9. Clique em Debug para iniciar a sessão de depuração.

O depurador se conecta ao processo JVM de escuta, e o terminal que executa tradefed.sh mostra o tf> prompt.

Para percorrer o código no modo de depuração, defina um ponto de interrupção no Eclipse e invoque o comando do Tradefed (ou seja, run <test>) no terminal. Para depurar qualquer coisa durante a inicialização do TF, defina o ponto de interrupção primeiro e anexe o depurador do Eclipse.

DICA: para usar uma porta alternativa, adicione TF_DEBUG_PORT=nnn ao comando na etapa 1 acima. Você pode até mesmo usar isso no ambiente de produção se tiver bugs de suspensão misteriosos para investigar: mude suspend=y para suspend=n em tradefed.sh e inicie com a flag de depuração. A JVM não vai esperar a conexão do depurador, mas você pode fazer isso a qualquer momento, desde que o processo ainda esteja em execução.

Depuração remota usando o JDB

Para usar o depurador Java JDB, siga etapas semelhantes às do Eclipse:

  1. Inicie tradefed.sh com a flag de depuração: TF_DEBUG=1 tradefed.sh
  2. Aguarde até ver o prompt da JVM: Listening for transport dt_socket at address: 10088.
  3. Conecte jdb. Por exemplo, execute o croot:

    jdb -attach 10088 \
        -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
    
  4. Aguarde a conexão e depure! Execute man jdb para mais ajuda.

Examinar a cobertura de código

  1. Instale o plug-in Eclemma.
  2. Acesse Help > Install New Software e aponte o assistente para: http://update.eclemma.org/
  3. Depois de instalado, selecione a opção de teste Coverage As > JUnit para executar uma cobertura de código.