Questa pagina descrive le nozioni di base su come implementare un nuovo reporter dei risultati e configurarlo per un test.
Interfaccia principale
Per definire un nuovo reporter dei risultati in Tradefed, una classe deve implementare l'interfaccia ITestInvocationListener
che consente di ricevere e gestire le diverse fasi dell'invocazione:
-
invocationStarted
-
invocationEnded
-
invocationFailed
I reporter dei risultati gestiscono anche le diverse fasi di ogni esecuzione del test:
-
testRunStarted
-
testStarted
-
testFailed
otestIgnored
-
testEnded
-
testRunFailed
-
testRunEnded
Considerati tutti questi eventi, ci sono due tipi principali di reporter dei risultati, quelli che:
- Preoccupatevi solo di riportare i risultati finali completi.
- Agisci sui risultati parziali.
Reporter dei risultati che riporta i risultati finali completi
Questo tipo è il caso più comune quando si tratta di interagire con un servizio esterno che riceve i risultati. Il reporter semplicemente riceve e accumula i risultati e poi li invia tutti su invocationEnded
all'endpoint del risultato.
Consigliamo a questi reporter di estendere CollectingTestListener
invece dell'interfaccia di base per evitare di reimplementare il salvataggio e l'archiviazione dei risultati fino a invocationEnded
.
Reporter dei risultati che riporta risultati parziali
Questo tipo viene solitamente utilizzato per un approccio in streaming dei risultati, quando i risultati vengono ricevuti e inviati immediatamente ad altri posti. Ad esempio, un reporter che registra i risultati sulla console sarebbe di questo tipo.
Questo tipo è specifico del tipo di gestione richiesta sugli eventi, quindi l'implementazione dell'interfaccia di base è in genere la modalità consigliata.
Configurazione XML
Il tag dell'oggetto è result_reporter
. Per esempio:
<result_reporter class="com.android.tradefed.result.ConsoleResultReporter">
<option name="suppress-passed-tests" value="true"/>
</result_reporter>