A partir de 27 de março de 2025, recomendamos usar android-latest-release
em vez de aosp-main
para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
Criar um relatório de resultados
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Esta página descreve os conceitos básicos de como implementar um novo gerador de relatórios de resultados e
configurá-lo para um teste.
Interface principal
Para definir um novo repórter 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 nos 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
.
Relatório de resultados que informa 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 o tipo de processamento necessário nos eventos.
Por isso, 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>
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-27 UTC."],[],[],null,["# Create a result reporter\n\nThis page describes the basics of how to implement a new result reporter and\nconfigure it for a test.\n\nCore interface\n--------------\n\nIn order to define a new result reporter in Tradefed, a class must implement\nthe\n[`ITestInvocationListener`](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/invocation_interfaces/com/android/tradefed/result/ITestInvocationListener.java)\ninterface that allows receiving and handling different stages of the\ninvocation:\n\n- `invocationStarted`\n- `invocationEnded`\n- `invocationFailed`\n\nResult reporters also handle the different stages of each test run:\n\n- `testRunStarted`\n- `testStarted`\n- `testFailed` or `testIgnored`\n- `testEnded`\n- `testRunFailed`\n- `testRunEnded`\n\nGiven all these events, there are two main types of result reporters, those that:\n\n- Care only about reporting the final complete results.\n- Take action on partial results.\n\n### Result reporter that reports final complete results\n\nThis type is the most common case when it comes to interacting with an external\nservice that receives the results. The reporter simply receives and accumulates\nthe results and then sends them all on `invocationEnded` to the result end-point.\n\nWe recommend that those reporters extend `CollectingTestListener` instead\nof the base interface in order to avoid reimplementing saving and storing the\nresults until `invocationEnded`.\n\n### Result reporter that reports partial results\n\nThis type is usually used for a streaming approach of the results, when results\nare received and pushed to some other places right away. For example, a reporter\nthat logs the results to the console would be of this type.\n\nThis type is specific to which type of handling is required on the events,\nso implementing the base interface is usually the recommended way.\n\n### XML configuration\n\nThe object tag is `result_reporter`. For example: \n\n \u003cresult_reporter class=\"com.android.tradefed.result.ConsoleResultReporter\"\u003e\n \u003coption name=\"suppress-passed-tests\" value=\"true\"/\u003e\n \u003c/result_reporter\u003e"]]