Ergebnisbericht erstellen

Auf dieser Seite wird beschrieben, wie Sie einen neuen Ergebnisreporter implementieren und für einen Test konfigurieren.

Hauptschnittstelle

Um einen neuen Ergebnisreporter in Tradefed zu definieren, muss eine Klasse die ITestInvocationListener-Schnittstelle implementieren, die das Empfangen und Verarbeiten verschiedener Phasen des Aufrufs ermöglicht:

  • invocationStarted
  • invocationEnded
  • invocationFailed

Außerdem verarbeiten sie die verschiedenen Phasen jedes Testlaufs:

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

Angesichts all dieser Ereignisse gibt es zwei Haupttypen von Ergebnisberichterstattern:

  • Berichte nur die endgültigen vollständigen Ergebnisse.
  • Auf Grundlage von Teilergebnissen Maßnahmen ergreifen

Ergebnisreporter, der endgültige vollständige Ergebnisse meldet

Dieser Typ ist der häufigste Fall, wenn es um die Interaktion mit einem externen Dienst geht, der die Ergebnisse empfängt. Der Reporter empfängt und sammelt einfach die Ergebnisse und sendet sie dann alle an den Ergebnisendpunkt invocationEnded.

Wir empfehlen, dass diese Reporter CollectingTestListener anstelle der Basisschnittstelle erweitern, um zu vermeiden, dass das Speichern und Aufbewahren der Ergebnisse bis invocationEnded neu implementiert werden muss.

Ergebnisreporter, der Teilergebnisse meldet

Dieser Typ wird in der Regel für einen Streaming-Ansatz der Ergebnisse verwendet, wenn Ergebnisse empfangen und sofort an andere Orte übertragen werden. Ein Reporter, der die Ergebnisse in der Konsole protokolliert, wäre beispielsweise von diesem Typ.

Dieser Typ ist spezifisch für die Art der Verarbeitung, die für die Ereignisse erforderlich ist. Daher ist die Implementierung der Basisschnittstelle in der Regel die empfohlene Methode.

XML-Konfiguration

Das Objekt-Tag ist result_reporter. Beispiel:

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