Criar um relatório de resultados

Esta página descreve os conceitos básicos de como implementar uma nova ferramenta de relatório de resultados e configurá-la para um teste.

Interface principal

Para definir um novo informante de resultados no Tradefed, uma classe precisa implementar a interface ITestInvocationListener que permite receber e processar diferentes estágios da invocação:

  • invocationStarted
  • invocationEnded
  • invocationFailed

Os acionadores de resultados também lidam com as diferentes etapas de cada execução de teste:

  • testRunStarted
  • testStarted
  • testFailed ou testIgnored
  • testEnded
  • testRunFailed
  • testRunEnded

Considerando todos esses eventos, há dois tipos principais de acionadores de resultados:

  • Informe apenas os resultados finais completos.
  • Tome medidas com base em resultados parciais.

Relatório de resultados que informa os resultados finais completos

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

Recomendamos que esses relatórios estendam CollectingTestListener em vez da interface de base para evitar a reimplementação do salvamento e do armazenamento dos resultados até invocationEnded.

Gerador de resultados que informa resultados parciais

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

Esse tipo é específico para o tipo de processamento necessário nos eventos. Portanto, a implementação da interface de base é geralmente a maneira recomendada.

Configuração de XML

A tag do objeto é result_reporter. Exemplo:

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