Esta página descreve os princípios 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:
-
invocationStarted
-
invocationEnded
-
invocationFailed
Os repórteres de resultados também lidam com os diferentes estágios de cada execução de teste:
-
testRunStarted
-
testStarted
-
testFailed
outestIgnored
-
testEnded
-
testRunFailed
-
testRunEnded
Dados todos esses eventos, existem dois tipos principais de relatores de resultados, aqueles que:
- Preocupe-se apenas em relatar os resultados finais completos.
- Aja com base em resultados parciais.
Repórter de resultados que relata os resultados finais completos
Este tipo é o caso mais comum quando se trata de interagir com um serviço externo que recebe os resultados. O repórter simplesmente recebe e acumula os resultados e depois os envia todos em invocationEnded
para o endpoint do resultado.
Recomendamos que esses repórteres estendam CollectingTestListener
em vez da interface base para evitar a reimplementação de salvar e armazenar os resultados até invocationEnded
.
Repórter 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 repórter 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 forma recomendada.
Configuração XML
A tag do objeto é result_reporter
. Por exemplo:
<result_reporter class="com.android.tradefed.result.ConsoleResultReporter">
<option name="suppress-passed-tests" value="true"/>
</result_reporter>