À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release
au lieu de aosp-main
pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Créer un outil de création de rapports sur les résultats
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Cette page explique les principes de base de l'implémentation d'un nouveau rapporteur de résultats et de sa configuration pour un test.
Interface de base
Pour définir un nouveau rapporteur de résultats dans Tradefed, une classe doit implémenter l'interface ITestInvocationListener
qui permet de recevoir et de gérer les différentes étapes de l'appel:
invocationStarted
invocationEnded
invocationFailed
Les outils de création de rapports sur les résultats gèrent également les différentes étapes de chaque exécution de test:
testRunStarted
testStarted
testFailed
ou testIgnored
testEnded
testRunFailed
testRunEnded
Compte tenu de tous ces événements, il existe deux principaux types de rapporteurs de résultats:
- Ne vous préoccupez que de générer les résultats finaux complets.
- Agir sur les résultats partiels
Outil de création de rapports qui génère les résultats finaux complets
Il s'agit du cas le plus courant pour interagir avec un service externe qui reçoit les résultats. Le rapporteur reçoit et accumule simplement les résultats, puis les envoie tous sur invocationEnded
au point de terminaison des résultats.
Nous recommandons à ces rapporteurs d'étendre CollectingTestListener
au lieu de l'interface de base afin d'éviter de réimplémenter l'enregistrement et le stockage des résultats jusqu'à invocationEnded
.
Outil de création de rapports qui génère des résultats partiels
Ce type est généralement utilisé pour une approche de streaming des résultats, lorsque les résultats sont reçus et transférés immédiatement vers d'autres emplacements. Par exemple, un rapporteur qui consigne les résultats dans la console est de ce type.
Ce type est spécifique au type de gestion requis pour les événements. Il est donc généralement recommandé d'implémenter l'interface de base.
Configuration XML
La balise de l'objet est result_reporter
. Exemple :
<result_reporter class="com.android.tradefed.result.ConsoleResultReporter">
<option name="suppress-passed-tests" value="true"/>
</result_reporter>
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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"]]