Créer un outil de création de rapports sur les résultats

Cette page décrit les principes de base de l'implémentation d'un nouveau rapporteur de résultats et de sa configuration pour un test.

Interface principale

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 différentes étapes de l'invocation :

  • invocationStarted
  • invocationEnded
  • invocationFailed

Les reporters de résultats gèrent également les différentes étapes de chaque série de tests :

  • testRunStarted
  • testStarted
  • testFailed ou testIgnored
  • testEnded
  • testRunFailed
  • testRunEnded

Compte tenu de tous ces événements, il existe deux principaux types de reporters de résultats :

  • Ne vous souciez que de signaler les résultats finaux complets.
  • Intervenir en fonction des résultats partiels

Rapporteur de résultats qui fournit les résultats finaux complets

Ce type est le plus courant lorsqu'il s'agit d'interagir avec un service externe qui reçoit les résultats. Le rapporteur reçoit et cumule simplement les résultats, puis les envoie tous sur invocationEnded au point de terminaison des résultats.

Nous recommandons à ces reporters 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 signalement des résultats qui signale les 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 envoyés immédiatement à d'autres endroits. Par exemple, un rapporteur qui enregistre les résultats dans la console serait 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

Le tag d'objet est result_reporter. Exemple :

<result_reporter class="com.android.tradefed.result.ConsoleResultReporter">
    <option name="suppress-passed-tests" value="true"/>
</result_reporter>