L'esecutore del test è l'unità di esecuzione del flusso di chiamata. È qui che vengono eseguiti i test.
Interfacce
I gestori dei test vengono definiti tramite l'interfaccia IRemoteTest, che fornisce un semplice metodo run
da implementare che verrà chiamato quando i test devono essere eseguiti.
In questo modo è possibile eseguire la definizione più semplice di un test. In pratica, però, gli autori di test hanno bisogno di maggiori informazioni per scrivere correttamente i propri test, in genere le informazioni sulla build e sul dispositivo. È qui che entrano in gioco le interfacce riportate di seguito.
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 recuperare l'oggetto
IBuildInfo
creato nel passaggio build provider contenente tutte le informazioni e gli elementi correlati alla configurazione del test. - IDeviceTest
consente a TF di ricevere l'oggetto
ITestDevice
che rappresenta il dispositivo sotto il test e fornisce un'API per interagire con quest'ultimo.
Avanzate
Esistono interfacce aggiuntive che consentono un'interazione più complessa tra il righello di test e il programma di test:
- ITestFilterReceiver, che consente al test di ricevere un insieme di filtri per l'esecuzione di determinati test solo. Questo è utile per eseguire un sottoinsieme di test.
- ITestCollector, che consente a un utente di eseguire solo la simulazione dei test anziché effettuarne l'esecuzione. Questo è utile per raccogliere l'elenco di tutti i casi di test.
Esecutori di test esistenti
Esistono già diversi runner di test, alcuni per i principali tipi di test:
- AndroidJUnitTest / InstrumentationTest (associato ad AJUR sul lato del dispositivo)
- GTest (lato dispositivo e host) con la libreria googletest
- Test basati sull'host (test Java eseguiti sull'host e che chiamano il dispositivo da lì)
- Test di unità Java puri (il nostro runner esegue entrambi)
- Test di Python
- Test di Google Benchmark con la libreria di benchmark
Oltre a quelli sopra indicati, esiste un numero elevato di runner di test personalizzati che hanno scopi specializzati per alcuni test funzionali, ad esempio il test di avvio.
Scrivere un nuovo programma di test
Ulteriori indicazioni su come scrivere un nuovo test runner sono disponibili nella sezione relativa ai test di scrittura.