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

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 principale

Pour définir un nouveau rapporteur de résultats dans Tradefed, une classe doit implémenter la ITestInvocationListener qui permet de recevoir et de gérer différentes étapes 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

Ce type est le cas le plus courant lorsqu'il s'agit d'interagir avec un qui reçoit les résultats. Il reçoit et accumule simplement les résultats, puis les envoie tous sur invocationEnded au point de terminaison du résultat.

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 par flux des résultats, lorsque les résultats sont reçues et transférées immédiatement vers d’autres endroits. Par exemple, un rapporteur qui consigne les résultats dans la console est de ce type.

Ce type est spécifique au type de traitement 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>