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