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
odertestIgnored
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>