Créer un rapporteur de résultats

Cette page décrit les bases de la façon d'implémenter un nouveau rapporteur de résultats et de le configurer pour un test.

Interface principale

Afin de 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'invocation :

  • invocationStarted
  • invocationEnded
  • invocationFailed

Les rapporteurs de résultats gèrent également les différentes étapes de chaque 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, ceux qui :

  • Ne vous souciez que de rapporter les résultats finaux complets.
  • Agissez sur des résultats partiels.

Journaliste de résultats qui rapporte les résultats finaux complets

Ce type est le cas le plus courant lorsqu'il s'agit d'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 lors de invocationEnded au point final du résultat.

Nous recommandons à ces journalistes 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 .

Journaliste de résultats qui rapporte des résultats partiels

Ce type est généralement utilisé pour une approche en continu des résultats, lorsque les résultats sont reçus et transférés immédiatement vers d'autres endroits. Par exemple, un rapporteur qui enregistre les résultats sur la console serait de ce type.

Ce type est spécifique au type de traitement requis sur les événements, donc l'implémentation de l'interface de base est généralement la méthode recommandée.

Configuration XML

La balise d'objet est result_reporter . Par exemple:

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