Auf dieser Seite werden die Grundlagen zum Implementieren eines neuen Ergebnisberichters und zum Konfigurieren für einen Test beschrieben.
Core-Oberfläche
Um einen neuen Ergebnisberichterstatter in Tradefed zu definieren, muss eine Klasse die ITestInvocationListener
-Schnittstelle implementieren, die den Empfang und die Verarbeitung verschiedener Aufrufphasen ermöglicht:
invocationStarted
invocationEnded
invocationFailed
Ergebnisberichte erfassen auch die verschiedenen Phasen jedes Testlaufs:
testRunStarted
testStarted
testFailed
odertestIgnored
testEnded
testRunFailed
testRunEnded
Angesichts all dieser Ereignisse gibt es zwei Haupttypen von Ergebnisberichten:
- Es ist wichtig, dass Sie nur die endgültigen, vollständigen Ergebnisse angeben.
- Maßnahmen bei Teilergebnissen ergreifen
Ergebnisbericht, der die endgültigen Ergebnisse enthält
Dieser Typ ist der häufigste Fall bei der Interaktion mit einem externen Dienst, der die Ergebnisse empfängt. Der Berichter empfängt und sammelt einfach die Ergebnisse und sendet sie dann alle über invocationEnded
an den Ergebnisendpunkt.
Wir empfehlen diesen Nutzern, CollectingTestListener
anstelle der Basisoberfläche zu erweitern, um das Speichern und Speichern der Ergebnisse bis invocationEnded
nicht noch einmal implementieren zu müssen.
Ergebnis-Reporter, der Teilergebnisse meldet
Dieser Typ wird in der Regel für einen Streaming-Ansatz der Ergebnisse verwendet, wenn Ergebnisse empfangen und sofort an andere Stellen gesendet werden. Ein Beispiel für einen solchen Nutzer ist ein Reporter, der die Ergebnisse in der Konsole protokolliert.
Dieser Typ gibt an, welche Art der Verarbeitung für die Ereignisse erforderlich ist. Daher wird in der Regel die Implementierung der Basisschnittstelle empfohlen.
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>