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
outestIgnored
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>