Il test runner è l'unità di esecuzione del flusso di chiamata. È qui che vengono eseguiti i test.
Interfacce
I test runner sono definiti tramite l'interfaccia
IRemoteTest,
che fornisce un semplice metodo run
da implementare che verrà chiamato quando
i test devono essere eseguiti.
Ciò consente di eseguire la definizione più semplice di un test. Tuttavia, in pratica, gli autori dei test avranno bisogno di maggiori informazioni per scrivere correttamente i test, in genere informazioni sulla build e sul dispositivo. È qui che entrano in gioco le seguenti interfacce.
Base
Queste due interfacce sono le più utilizzate oggi, in quanto rappresentano le esigenze di base della maggior parte dei test.
- IBuildReceiver
consente al test di ottenere l'oggetto
IBuildInfo
creato nel passaggio build provider contenente tutte le informazioni e gli artefatti relativi alla configurazione del test. - IDeviceTest
consente a TF di ricevere l'oggetto
ITestDevice
che rappresenta il dispositivo in fase di test e fornisce un'API per interagire con esso.
Avanzate
Esistono interfacce aggiuntive che consentono un'interazione più complessa tra il test harness e il test runner:
- ITestFilterReceiver, che consente al test di ricevere un insieme di filtri per eseguire solo determinati test. Questa opzione è utile per eseguire un sottoinsieme dei test.
- ITestCollector, che consente a un test runner di eseguire solo una prova generale dei test anziché eseguirli effettivamente. Questo è utile per raccogliere l'elenco di tutti gli scenari di test.
Esecutori di test esistenti
Esiste già una serie di test runner, alcuni per i principali tipi di test:
- AndroidJUnitTest / InstrumentationTest (associato ad AJUR sul lato dispositivo)
- GTest (lato dispositivo e host) con la libreria googletest
- Test basati sull'host (test Java che vengono eseguiti sull'host e chiamano il dispositivo da lì)
- Test delle unità Java pure (il nostro runner esegue entrambe le operazioni)
- Test Python
- Test Google Benchmark con la libreria di benchmark
Oltre a quelli sopra indicati, esiste un gran numero di runner di test personalizzati che servono a scopi specializzati per alcuni test funzionali, ad esempio il test di avvio.
Scrivere un nuovo test runner
Ulteriori indicazioni per la scrittura di un nuovo test runner sono disponibili nella sezione relativa alla scrittura di test.