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 devono essere eseguiti i test.
In questo modo è possibile definire l'esecuzione di test più semplice. Tuttavia, in pratica, gli autori dei test avranno bisogno di ulteriori informazioni per scrivere correttamente i test, in genere informazioni sulla build e sul dispositivo. È qui che entrano in gioco le seguenti interfacce.
Di base
Queste due interfacce sono le più utilizzate al giorno d'oggi, in quanto rappresentano le esigenze di base della maggior parte dei test.
- IBuildReceiver
consente al test di ottenere l'oggetto
IBuildInfocreato nel passaggio del fornitore della build contenente tutte le informazioni e gli artefatti relativi alla configurazione del test. - IDeviceTest
consente a TF di ricevere l'oggetto
ITestDeviceche 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 l'ambiente di test 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 di test.
- ITestCollector, che consente a un test runner di eseguire solo un'esecuzione di prova dei test anziché eseguirli effettivamente. Questa opzione è utile per raccogliere l'elenco di tutti i casi di test.
Test runner esistenti
Esistono già diversi test runner, alcuni per i principali tipi di test:
- AndroidJUnitTest / InstrumentationTest (associato ad AJUR sul lato del dispositivo)
- GTest (lato host e dispositivo) con la libreria googletest
- Test basati sull'host (test Java che vengono eseguiti sull'host e chiamano il dispositivo da lì)
- Test unitari Java puri (il nostro runner esegue entrambi)
- Test Python
- Test Google Benchmark con la libreria benchmark
Oltre a quelli sopra indicati, esiste un gran numero di test runner personalizzati che hanno scopi specializzati per alcuni test funzionali, ad esempio il test di avvio.
Scrivere un nuovo test runner
Ulteriori indicazioni sulla scrittura di un nuovo test runner sono disponibili nella sezione relativa alla scrittura dei test .