Il test runner è l'unità di esecuzione del flusso di chiamata. È qui che vengono effettivamente eseguiti i test.
Interfacce
I test runner vengono definiti tramite l' interfaccia IRemoteTest , che fornisce un semplice metodo di run
da implementare che verrà chiamato quando i test devono essere eseguiti.
Ciò consente la definizione più semplice di un'esecuzione di test. Ma in pratica, gli autori dei test avranno bisogno di più informazioni per scrivere correttamente i loro test, in genere informazioni sulla build e sul dispositivo. È qui che tornano utili le seguenti interfacce.
Di base
Queste due interfacce sono oggi le più utilizzate, poiché rappresentano le esigenze di base della maggior parte dei test.
- IBuildReceiver consente al test di ottenere l'oggetto
IBuildInfo
creato nella fase del provider di build 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 sotto test e fornisce un'API per interagire con esso.
Avanzate
Esistono interfacce aggiuntive che consentono un'interazione più complessa tra il test cablaggio e il test runner:
- ITestFilterReceiver , che consente al test di ricevere una serie di filtri per l'esecuzione solo di determinati test. Ciò è utile per eseguire un sottoinsieme di test.
- ITestCollector , che consente a un test runner di eseguire solo i test invece di eseguirli effettivamente. Ciò è utile per raccogliere l'elenco di tutti i casi di test.
Test runner esistenti
Esistono già numerosi test runner, alcuni per i principali tipi di test:
- AndroidJUnitTest/InstrumentationTest (associato ad AJUR sul lato dispositivo)
- GTest (lato dispositivo e host) con libreria googletest
- Test guidati dall'host (test Java che vengono eseguiti sull'host e chiamano il dispositivo da lì)
- Unit test Pure Java (il nostro runner fa entrambi)
- Test Python
- Test di Google Benchmark con libreria di benchmark
Oltre a quanto sopra, esiste un gran numero di test runner personalizzati; servono a scopi specializzati per alcuni test funzionali, ad esempio Boot Test.
Scrivi un nuovo test runner
Ulteriori indicazioni sulla scrittura di un nuovo test runner sono disponibili nella sezione dei test di scrittura .