Struttura di un programma di test

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 IBuildInfo creato 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 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 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:

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 .