Google si impegna a promuovere l'equità razziale per le comunità nere. Vedi come.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Riprova test automatico

Un test potrebbe non riuscire per qualsiasi motivo e, a volte, è sufficiente rieseguire il test per farlo passare di nuovo (a causa di problemi, ad esempio a causa di problemi nell'infrastruttura sottostante). Puoi configurare Tradefed per eseguire automaticamente il nuovo tentativo.

Il nucleo del tentativo automatico è quello di evitare di rieseguire tutti i test; esegue nuovamente solo i test non riusciti, con un notevole risparmio nei tempi di esecuzione.

Tradefed supporta anche l'esecuzione di test più volte al fine di rilevare difetti attraverso la funzione iterazioni . In questo caso, tutti i test verranno rieseguiti e il test fallirà se una delle iterazioni fallisce.

Abilitazione della funzione

Il tentativo automatico è controllato tramite l' oggetto RetryDecision che fornisce due opzioni per abilitare la funzione: max-testcase-run-count e retry-strategy .

max-testcase-run-count il numero di tentativi o iterazioni che verranno tentati. Imposta un limite superiore per evitare di riprovare per sempre. retry-strategy guida la decisione su come riprovare; vedere le sezioni seguenti per maggiori dettagli.

Riprovare a fallire

Per riprovare a fallire i test, utilizzare le seguenti opzioni:

 --retry-strategy RETRY_ANY_FAILURE --max-testcase-run-count X
 

Ciò riproverà l'errore fino al superamento o fino al raggiungimento del numero massimo di tentativi, a seconda dell'evento che si verifica per primo.

iterazioni

Per rieseguire i test per un certo numero di volte, è possibile utilizzare le seguenti opzioni:

 --retry-strategy ITERATIONS --max-testcase-run-count X
 

Come si presentano i risultati?

I cronisti dei risultati per impostazione predefinita riceveranno i risultati aggregati di tutti i tentativi.

Ad esempio: un Fail e un Pass per RETRY_ANY_FAILURE comporteranno un Pass aggregato poiché il nuovo tentativo è riuscito a eliminare l'errore.

È possibile che i giornalisti ricevano risultati non aggregati. Per fare ciò, devono estendere l' interfaccia ISupportGranularResults che dichiara il supporto per i risultati granulari (non aggregati).

Dettagli di implementazione

Per abilitare il tentativo automatico di rieseguire errori a livello di test case, implementare ITestFilterReceiver .

Se non è possibile implementare ITestFilterReceiver, è possibile implementare IAutoRetriableTest per controllare manualmente il funzionamento della riesecuzione . InstalledInstrumentationsTest è un'implementazione di esempio di tale interfaccia.