2015-01-07 8 views
7

Sto testando la mia app per Android con Robolectric ma ho affrontato una situazione strana. Quello che succede è che quando eseguo alcuni set di test, il primo test eseguito con Robolectric richiede molto più tempo di qualsiasi altro test. Non è specifico del test stesso, poiché ho provato diverse configurazioni sull'ordine dei test e il risultato è che il primo test è sempre il più lento.Perché il primo test eseguito con Robolectric richiede così tanto tempo?

Sono tempi di impostazione Robolectric o qualcosa del genere? Qualsiasi informazione fornita è utile.

Ad esempio: Example of slow first test

risposta

6

Sì, questo è il tempo di installazione. Sfortunatamente non esiste un luogo centrale in cui sia possibile raccogliere tutte le informazioni su Robolectric.

Guarda this presentation e troverete ulteriori spiegazioni alle pagine 28, 29, 30, 35.

Se siete interessati alla Robolectric cambiato alcuni approcci nella versione 2.0. Cambiamenti significativi sono:

  1. Javaassist utilizzo sostituito con ASM utilizzo - per ora di inizio SpeedUp
  2. provano a ridurre il numero di classi d'ombra e di utilizzare ASOP codice di Android, invece - per una migliore affidabilità di prova

Se usi gradle quindi dai un'occhiata anche a robolectric gradle plugin. I test in corso aggiunti in parallelo e altre opzioni di ottimizzazione. I test in esecuzione in parallelo apparentemente utili solo con una grande quantità di test (centinaia +)

+0

ah fantastico! grazie ;) –