Questa pagina descrive le nozioni di base su come implementare un nuovo report sui risultati e configurarlo per un test.
Interfaccia di base
Per definire un nuovo reporter dei risultati in Tradefed, una classe deve implementare
l'interfaccia
ITestInvocationListener
che consente di ricevere e gestire diverse fasi della
chiamata:
invocationStarted
invocationEnded
invocationFailed
I reporter dei risultati gestiscono anche le diverse fasi di ogni esecuzione di test:
testRunStarted
testStarted
testFailed
otestIgnored
testEnded
testRunFailed
testRunEnded
Alla luce di tutti questi eventi, esistono due tipi principali di report sui risultati:
- Concentrati solo sulla generazione di report sui risultati finali completi.
- Intervenire sui risultati parziali.
Report sui risultati che genera risultati finali completi
Questo è il caso più comune quando si tratta di interagire con un servizio esterno che riceve i risultati. Il reporter deve semplicemente ricevere e accumulare i risultati, quindi inviarli tutti su invocationEnded
all'endpoint del risultato.
Consigliamo ai reporter di estendere CollectingTestListener
anziché
l'interfaccia di base per evitare di implementare nuovamente il salvataggio e l'archiviazione
dei risultati fino al giorno invocationEnded
.
Report sui risultati che genera risultati parziali
Questo tipo viene in genere utilizzato per un approccio in streaming dei risultati, quando i risultati vengono ricevuti e inviati immediatamente ad altri luoghi. Ad esempio, un reporter che registra i risultati nella console è di questo tipo.
Questo tipo è specifico per il tipo di gestione richiesto per gli eventi, pertanto l'implementazione dell'interfaccia di base è in genere il metodo consigliato.
Configurazione XML
Il tag dell'oggetto è result_reporter
. Ad esempio:
<result_reporter class="com.android.tradefed.result.ConsoleResultReporter">
<option name="suppress-passed-tests" value="true"/>
</result_reporter>