Criando um novo Reporter de resultados

Esta seção descreve os conceitos básicos de como implementar um novo relator de resultados e configurá-lo para um teste.

Interface principal

Para definir um novo relator de resultados no Tradefed, uma classe deve implementar a interface ITestInvocationListener que permite receber e tratar diferentes etapas da invocação:

  • invocaçãoIniciada
  • invocaçãoTerminou
  • invocação falhou

Os relatores de resultados também lidam com os diferentes estágios de cada execução de teste:

  • testRunStarted
  • testeIniciado
  • testeFalhou/testeIgnorado
  • testeTerminado
  • testRunFailed
  • testRunEnded

Diante de todos esses eventos, existem dois tipos principais de relatores de resultados, aqueles que:

  • Preocupe-se apenas em relatar os resultados finais completos.
  • Agir em resultados parciais.

Reporter de resultados que relata os resultados finais completos

Esse tipo é o caso mais comum quando se trata de interagir com um serviço externo que recebe os resultados. O relator simplesmente recebe e acumula os resultados e então os envia todos em invocationEnded para o ponto final do resultado.

Recomenda-se que esses relatores estendam CollectingTestListener em vez da interface base para evitar reimplementar salvar e armazenar os resultados até invocationEnded .

Reporter de resultados que relata resultados parciais

Esse tipo geralmente é usado para uma abordagem de streaming dos resultados, quando os resultados são recebidos e enviados para outros lugares imediatamente. Por exemplo, um relator que registra os resultados no console seria desse tipo.

Esse tipo é específico para qual tipo de manipulação é necessária nos eventos, portanto, implementar a interface base geralmente é a maneira recomendada.

Configuração XML

A tag do objeto será result_reporter . Por exemplo:

<result_reporter class="com.android.tradefed.result.ConsoleResultReporter">
    <option name="suppress-passed-tests" value="true"/>
</result_reporter>