Nuovo tentativo di test automatico

Un test potrebbe non riuscire per qualsiasi motivo e a volte può essere sufficiente ripeterlo abbastanza da farla passare di nuovo (a causa di irregolarità, ad esempio a causa di problemi nella l'infrastruttura sottostante). Puoi configurare Tradefed per eseguire il nuovo tentativo automaticamente.

Lo scopo del nuovo tentativo automatico è evitare di eseguire nuovamente tutti i test. esegue nuovamente solo per i test non riusciti, con un conseguente risparmio sui tempi di esecuzione.

Tradefed supporta anche l'esecuzione di test più volte per rilevare instabilità tramite la funzionalità iterazioni. In questo caso, tutti i test verranno una nuova esecuzione e il test non andrà a buon fine se una delle iterazioni non va a buon fine.

Abilita nuovo tentativo automatico

Il nuovo tentativo automatico è controllato tramite Oggetto SubmitDecision che offre due opzioni per attivare la funzionalità: max-testcase-run-count e retry-strategy.

max-testcase-run-count determina il numero di nuovi tentativi o iterazioni che tentativi. Imposta un limite superiore per evitare nuovi tentativi all'infinito. retry-strategy determina come riprovare. consulta le sezioni seguenti per ulteriori informazioni.

Disattiva nuovo tentativo automatico

Utilizza la seguente opzione:

--retry-strategy NO_RETRY

Nuovi tentativi non riusciti

Per riprovare gli errori di test, utilizza le seguenti opzioni:

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

Verrà eseguito un nuovo tentativo di errore finché non viene superato o fino al numero massimo di nuovi tentativi. a seconda dell'evento che si verifica per primo.

Iterazioni

Per eseguire nuovamente i test per un certo periodo di tempo, possono essere utilizzate le seguenti opzioni:

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

Che aspetto hanno i risultati?

Per impostazione predefinita, i reporter dei risultati riceveranno i risultati aggregati di tutti i tentativi.

Ad esempio, Fail e Pass per RETRY_ANY_FAILURE generano un Pass aggregato perché il nuovo tentativo è riuscito a cancellare l'errore.

I reporter possono ricevere i risultati non aggregati. Per farlo, è necessario estendere Interfaccia ISupportGranularResults che dichiara il supporto dei risultati granulari (non aggregati).

Dettagli di implementazione

Per abilitare il nuovo tentativo automatico di eseguire nuovamente gli errori a livello di scenario di test, implementa ITestFilterReceiver.

Se non riesci a implementare ITestFilterReceiver, puoi implementare TestIAutoRetriable per controllare manualmente la modalità di ripetizione. InstallInstrumentationsTest un esempio di implementazione dell'interfaccia.