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