Erstellen Sie einen Ergebnisreporter

Auf dieser Seite werden die Grundlagen zur Implementierung eines neuen Ergebnisreporters und zur Konfiguration für einen Test beschrieben.

Kernschnittstelle

Um einen neuen Ergebnisreporter in Tradefed zu definieren, muss eine Klasse die ITestInvocationListener Schnittstelle implementieren, die den Empfang und die Verarbeitung verschiedener Phasen des Aufrufs ermöglicht:

  • invocationStarted
  • invocationEnded
  • invocationFailed

Ergebnisberichterstatter kümmern sich auch um die verschiedenen Phasen jedes Testlaufs:

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

Angesichts all dieser Ereignisse gibt es zwei Haupttypen von Ergebnisberichtern: diejenigen, die:

  • Es geht Ihnen nur darum, die endgültigen vollständigen Ergebnisse zu melden.
  • Ergreifen Sie Maßnahmen bei Teilergebnissen.

Ergebnisberichterstatter, der die endgültigen vollständigen Ergebnisse meldet

Dieser Typ kommt am häufigsten vor, wenn es um die Interaktion mit einem externen Dienst geht, der die Ergebnisse erhält. Der Reporter empfängt und sammelt einfach die Ergebnisse und sendet sie dann alle bei invocationEnded an den Ergebnisendpunkt.

Wir empfehlen diesen Reportern, CollectingTestListener anstelle der Basisschnittstelle zu erweitern, um eine erneute Implementierung des Speicherns und Speicherns der Ergebnisse bis invocationEnded zu vermeiden.

Ergebnisberichterstatter, der Teilergebnisse meldet

Dieser Typ wird normalerweise für einen Streaming-Ansatz der Ergebnisse verwendet, bei dem Ergebnisse empfangen und sofort an andere Orte übertragen werden. Zu diesem Typ gehört beispielsweise ein Reporter, der die Ergebnisse in der Konsole protokolliert.

Dieser Typ ist spezifisch dafür, welche Art der Verarbeitung der Ereignisse erforderlich ist. Daher ist die Implementierung der Basisschnittstelle normalerweise die empfohlene Methode.

XML-Konfiguration

Das Objekt-Tag ist result_reporter . Zum Beispiel:

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