Criar um relatório de resultados

Esta página descreve os fundamentos de como implementar uma nova ferramenta de relatório de resultados e configurá-lo para um teste.

Interface principal

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

  • invocationStarted
  • invocationEnded
  • invocationFailed

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

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

Considerando todos esses eventos, há dois tipos principais de informantes de resultados, os que:

  • Informe apenas os resultados finais completos.
  • Realizar ações em resultados parciais.

Gerador de resultados, que informa os resultados finais completos

Esse tipo é o caso mais comum quando se trata de interagir com um ou serviço que recebe os resultados. O denunciante simplesmente recebe e acumula os resultados e, em seguida, envia todos eles em invocationEnded para o endpoint do resultado.

Recomendamos que esses informantes estendam o CollectingTestListener da interface base a fim de evitar a reimplementação de salvamento e armazenamento dos resultados até invocationEnded.

Gerador de resultados que informa resultados parciais

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

Esse tipo é específico para o tipo de tratamento que é necessário nos eventos, portanto, a implementação da interface base costuma ser a forma recomendada.

Configuração de XML

A tag de objeto é result_reporter. Exemplo:

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