AndroidX Test Espresso 3.1.1, Runner 1.1.1, Regole 1.1.1, Monitoraggio 1.1.1 AndroidTestOrchestrator 1.1.1, Core 1.1.0, Truth 1.1.0, JUnit 1.1.0 (2018-12-13)
Questa è la release stabile di AndroidX Test 1.1.0
- Principali
- Fai in modo che ActivityScenario supporti attività che avviano un'altra attività
AndroidX Test Espresso 3.1.1-beta01, Runner 1.1.1-beta01, Regole 1.1.1-beta01, Monitoraggio 1.1.1-beta01 AndroidTestOrchestrator 1.1.1-beta01, Core 1.1.0-beta01 Verità 1.1.0-beta01, J-0-8-beta01 (J-Unit 1.1)
- Principali
- Nuovo manufatto per l'estensione core-ktx kotlin! Include un'API ActivityScenario.launchActivity compatibile con Kotlin
- Nuova API ActivityScenario per avviare attività con intent personalizzati
- Nuova API ActivityScenario per ricevere un risultato di attività
- Rendi ActivityScenario chiudebile
- Caffè
- Modifica conResourceNameMatcher e HumanReadables in modo che siano compatibili con l'API 28.
- Aggiorna la descrizione di replaceTextAction per includere il valore stringToBeSet.
- Supporta Espresso in modalità Looper in pausa Robolectric.
- JUnit
- Nuova API ActivityScenarioRule, per l'avvio automatico e la chiusura di un'attività durante la configurazione e lo smontaggio
- Nuovo manufatto per l'estensione junit-ktx kotlin! Include un'API ActivityScenarioRule adatta a Kotlin
- Corsa
- Rendi coerenti il comportamento dei pacchetti -e e testFile quando ricevi i pacchetti
- Verità
- Aggiungi le API BundleSubject bool, parcelable e parcelableAsType
AndroidX Test Espresso 3.1.0, Runner 1.1.0, Regole 1.1.0, Monitor 1.1.0 AndroidTestOrchestrator 1.1.0, Core 1.0.0 Truth 1.0.0, JUnit 1.0.0 (2018-10-24)
- Tutti
- Imposta minSdkVersion su 14 e targetSdkVersion su 28
- Caffè
- Risolvere il problema con ContentDescription per utilizzare tipi non stringa
- Aggiungi il supporto per l'utilizzo di Espresso su Robolectric
- Problema 72798625: Espresso ViewMatchers.withText non funziona quando textAllCaps è abilitato
- Aggiunta del supporto per l'inserimento di una sequenza di eventi di movimento
- Intent
- Aggiungi l'API beta per recuperare l'elenco di intent. Da usare con nuove affermazioni della verità
- Corsa
- Aggiunta del supporto per le app istantanee
- Depreca androidx.test.runner.AndroidJUnit4 e sostituiscilo con androidx.test.ext.junit.runners.AndroidJUnit4
- Monitora
- Depreca androidx.test.InstrumentationRegistry e sostituiscilo con androidx.test.platform.app.ToolationRegistry e androidx.test.core.app.ApplicationProvider
- AndroidTestOrchestrator
- Abilita la gestione della copertura dell'agente di orchestrazione solo se vengono passati entrambi gli argomenti "coverage" e "coverageFilePath".
- Attendi il debugger solo quando è impostato -debug, ma non per elencare gli scenari di test ATO. È stato aggiunto un nuovo flag di orchestratorDebug per eseguire il debug dell'agente di orchestrazione stesso
- Principali
- Nuovo elemento! Include nuove API che supportano test sia locali che sul dispositivo per:
- Recupero contesto: ApplicationProvider
- Controllo dei cicli di vita delle attività: ActivityScenario(beta)
- Builder per MotionEvent, PackageInfo
- Classe di utilità Parceables
- Nuovo elemento! Include nuove API che supportano test sia locali che sul dispositivo per:
- Verità
- Nuovo elemento! Include oggetti veri e personalizzati per notifiche, intent, bundle, Parcelable e MotionEvent
- JUnit
- Nuovo elemento! Include la classe runner JUnit androidx.test.ext.junit.runners.AndroidJUnit4 che supporta sia test locali che sul dispositivo.
Espresso 3.0.2-beta1, Runner 1.0.2-beta1, Regole 1.0.2-beta1, Monitoraggio 1.0.2-beta1, AndroidTestOrchestrator 1.0.2-beta1 (2018-04-16)
- Caffè
- Modifica dell'API in fase di interruzione:
- Nel numero 64062890 ci è stato segnalato che stavamo utilizzando Guava Optional nella nostra API pubblica. È stata una terribile svista da parte nostra . Di conseguenza, in questa release è stata apportata una modifica che provoca un errore all'API pubblica per risolvere questo problema. Abbiamo introdotto un brutto wrapper intorno alla classe Guava Optional, denominata EspressoOptional, che si trova nello spazio dei nomi "android.support.test.espresso.util". Gli sviluppatori che utilizzavano l'API Guava Optional divulgata devono modificare le proprie importazioni e i propri riferimenti per utilizzare EspressoOptional durante l'aggiornamento a questa nuova versione. Ci scusiamo per gli eventuali disagi.
- Le API onView() e onData() sono ora contrassegnate come @CheckReturnValue per evitare errori
- È stato risolto il problema relativo al file POM espresso-core in modo da non estrarre la dipendenza "regole", ma da estrarre dal POM espresso-intent. Questa dovrebbe essere una modifica NoOp per gli sviluppatori, poiché le intenzioni espresso non possono essere utilizzate senza espresso-core.
- Problema 65486414: Espresso manca la dipendenza guava
- Problema 65576174: Espresso IdlingResourceRegistry.sync causa un errore del secondo test
- Problema 65568629: Espresso.onIdle non utilizza IdlingRegistry
- Problema 69333598: espresso 3.0.1 incompatibile con play-services-auth:11.6.0 nel modulo libreria Android.
- Problema 64062890: tipo interno facoltativo esposto dall'interfaccia AdapterViewProtocol
- Problema 64091847: Espresso 3.0.0 NON deve dipendere dal test runner
- Problema 73722050: classe espresso-contrib 3.0.2-alpha1 pacchetti android.arch.{lifecycle/core}
- Modifica dell'API in fase di interruzione:
- Telecomando per espresso
- Questo è un manufatto completamente nuovo. Abbiamo disaccoppiato tutte le funzionalità di multi-processo di Espresso al di fuori dell'artefatto espresso-core. Questo metodo è più pulito e dovrebbe ridurre notevolmente le dimensioni complessive del core espresso e il numero di metodi.
- Corsa
- Tronca l'analisi dello stack se è troppo grande per una transazione di Binder. Poiché AJUR deve segnalare gli errori ad AM tramite un IPC di binder, dobbiamo assicurarci di non superare il limite di transazioni di Binder, ovvero 1 MB per processo.
- Problema 65828576: arresto anomalo di TestRequestBuilder durante l'esecuzione di test in classe con @Ignora
- Problema 37057596: non gestiamo gli errori in @BeforeClass
- Regole
- Assicurati di rilasciare un riferimento sull'attività in fase di test dopo le modifiche al ciclo di vita. Durante il test è ora in grado di manipolare l'attività direttamente utilizzando il riferimento ottenuto da #getActivity(). Se l'attività viene terminata e viene riavviata, il riferimento restituito da #getActivity() ora rimanda sempre all'istanza corrente dell'attività.
- Problema 64389280: GrantPermissionRule non fornisce WRITE_EXTERNAL_STORAGE
- Problema 37065965: ActivityTestRule fa perdere l'attività dopo il cambio dell'orientamento
- Problema 75254050: ActivityTestRule non aggiorna l'istanza Activity durante le modifiche alla configurazione
- Problema 64464625: impossibile eseguire l'interfaccia utente nel metodo finish() dell'attività
- AndroidTestOrchestrator
- Supera
-e coverage true -e coverageFilePath /sdcard/foo/
flag per generare file di copertura nella località specificata (l'app deve disporre dell'autorizzazione per scrivere nella posizione specificata). La convenzione di denominazione dei file di copertura ora è simile a questacom.foo.Class#method1.ec
. Tieni presente che questa funzionalità è supportata solo in modalità isolata. Inoltre, non può essere utilizzato insieme al flagcoverageFile
di AndroidJUnitRunner. Poiché i file di copertura generati si sovrascrivono a vicenda. - Passa il flag
-e clearPackageData
se vuoi che l'agente di orchestrazione esegua i comandipm clear context.getPackageName()
epm clear targetContext.getPackageName()
tra una chiamata di test e l'altra. Tieni presente che il contesto nel comando chiaro è l'app nel contesto di test. - Risolto: quando si esegue un test vuoto, ossia senza @Test all'interno del target, il risultato del test è diverso dalla modalità precedente.
- Problema 72758547: Test Orchestrator fa sì che i dati relativi alla copertura di Jacoco siano incompleti, poiché contengono solo i dati dell'ultima esecuzione di test
- Problema 67916042: Android Test Orchestrator : esecuzione interrotta in caso di arresto anomalo del processo a causa dell'esaurimento della memoria
- Problema 77752735: Orchestrator si arresta in modo anomalo per TransactionTooLargeException
- Problema 77549481: l'orchestratore di prova deve eseguire il comando "pm cancella" dopo ogni test
- Supera
Espresso 3.0.2-alpha1, Runner 1.0.2-alpha1, Regole 1.0.2-alpha1, AndroidTestOrchestrator 1.0.2-alpha1 (2017-12-05)
Caffè
Intents
ora ha una risposta richiamabile, che consente l'esecuzione dei test dopo l'acquisizione di un intent attivato, ma prima di restituire un oggettoInstrumentation.ActivityResult
.
Corsa
Suddividi l'artefatto sviluppatore monitor
com.android.support.test:monitor:<version>
per gli utenti che hanno bisogno diMonitoringInstrumentation
senza eseguire test e le funzionalità di JUnit.Se utilizzi
com.android.support.test:runner:<version>
, tutto funziona come previsto, perché Gradle estrae automaticamente il modulomonitor
come dipendenza del modulorunner
.Flag
newRunListenerOrderMode
aggiunto. Quandotrue
, i listener definiti dall'utente vengono eseguiti prima dei listener predefiniti. Prevediamo che questo comportamento diventerà l'impostazione predefinita.Problema 65828576:
TestRequestBuilder
si arresta in modo anomalo quando vengono eseguiti test in una classe annotata con@Ignore
(autonomo senza esecuzione di test o funzionalità JUnit).
AndroidTestOrchestrator
- Ora gestisce i test vuoti come se fossero
AndroidJUnitRunner
non orchestrati. - Ora Orchestrator può gestire output standard molto grandi da
AndroidJUnitRunner
.
- Ora gestisce i test vuoti come se fossero
Espresso 3.0.1, Runner 1.0.1, Regole 1.0.1, AndroidTestOrchestrator 1.0.1 (28/08/2017)
Caffè
- È stata aggiunta un'opzione
IdlingPolicy
per eliminareonTimeout()
quando un debugger di passi è collegato alla VM. - Problemi 64024656, 64247586 e 64525881: non segnalare errori relativi al caricamento delle classi non riuscito, a meno che un utente non stia caricando classi specifiche includendo l'argomento
-e
class runner. - Problema 64877246: aggiunta delle classi mancanti al file JAR di origine.
- È stata aggiunta un'opzione
Corsa
- Logica
ShardingFilter
semplificata. - Problema 65025743: il filtro
@RequiresDevice
ora supporta gli emulatori FTL.
- Logica
AndroidTestOrchestrator
- Non duplicare gli errori dei report. Quando un processo di test si arresta in modo anomalo dopo un errore, viene segnalato un solo errore per il test.
- Corretto il codice Javadoc per Orchestrator.
- Ora i test vengono indicati come non riusciti se il processo remoto si arresta in modo anomalo.
- Ora gestisce gli scenari di test ignorati.
- Ora esclude gli scenari di test ignorati dal piè di pagina in modo che corrispondano ai risultati precedenti.
- Risolti i problemi relativi alle autorizzazioni di runtime. I report sui test vengono ora scritti sulla scheda SD su Android 7.0 (livello API 24) e versioni successive.
Espresso 3.0.0, Runner 1.0.0, Regole 1.0.0, AndroidTestOrchestrator 1.0.0 (25-07-2017, Avviso)
Modifiche che provocano un errore
- Tutti gli artefatti
- Eliminazione del supporto per livelli API inferiori a 15. Tuttavia, l'SDK minimo rimanda ancora al livello API 9 per dare agli utenti il tempo di eseguire l'upgrade
- Caffè
- La classe
android.support.test.espresso.contrib.CountingIdlingResource
deprecata è stata eliminata e spostata inandroid.support.test.espresso.idling.CountingIdlingResource
- Utilizza
getInstance().register()
anzichéregisterIdlingResources()
- Utilizza
- Guava ora è in jarjar in uno spazio dei nomi "interno" diverso. Se per errore utilizzi l'API Guava tramite gli spazi dei nomi Espresso, potresti notare interruzioni
- Rimuovi eventuali riferimenti a Guava ombreggiato (
.core.deps.guava.
) - Esegui l'upgrade della tua libreria di supporto alla versione 25.4.0 o successive
- Rimuovi eventuali riferimenti a Guava ombreggiato (
- La classe
Problemi noti
- AndroidTestOrchestrator
- Gli argomenti runner
-e numShards
e-e shardIndex
non sono attualmente supportati - I test con parametri non sono al momento supportati
- Gli argomenti runner
Nuove funzionalità
- Caffè
- Nuovo supporto per Multiprocess Espresso
su API 26 per
espresso-core
eespresso-web
, ma nonespresso-contrib
- Nuova API leggera
IdlingRegistry
- Pubblicato come parte di
com.android.support.test.espresso:espresso-idling-resource:3.0.0
- Metodi deprecati:
- Pubblicato come parte di
- Nuova API per facilitare la sincronizzazione con
Executors
- Nuovo artefatto sviluppatore:
com.android.support.test.espresso.idling:idling-concurrent:3.0.0
- Contiene
IdlingScheduledThreadPoolExecutor
eIdlingThreadPoolExecutor
classi
- Nuovo artefatto sviluppatore:
- Nuova API per facilitare la sincronizzazione con le richieste e le risposte di rete.
- Nuovo artefatto sviluppatore:
com.android.support.test.espresso.idling:idling-net:3.0.0
- Contiene
UriIdlingResource
il corso
- Nuovo artefatto sviluppatore:
- Nuovi
espresso-core
matcher visualizzazione:hasBackground()
trova corrispondenze con la risorsa disegnabile in background di un oggettoView
hasTextColor()
corrisponde al colore di un oggettoTextView
- Nuovi metodi di azione di visualizzazione:
- Azione di visualizzazione
scrollTo()
ottimizzata per funzionare con i discendenti diListView
repeatedlyUntil()
– Esegue l'azioneViewAction
specificata su una vista finché la vista non corrisponde alla visualizzazioneViewMatchers
desiderata
- Azione di visualizzazione
- Nuovi metodi per il caffè espresso:
pressBackUnconditionally()
– Simile apressBack()
, ma non genera eccezioni quando si naviga in EspressonoActivity()
– Elimina la necessità di attendere un'attività prima di eseguireViewAction
oViewAssertion
onIdle()
– Esegui il loop del thread principale fino a quando l'app diventa inattivaonIdle(Callable<T>)
- Uguale aonIdle()
, ma utilizza un ulterioreCallable
come parametro, che viene eseguito dopo che l'app diventa inattiva
webScrollIntoView()
– Nuovo atom diespresso-web
che ti consente di scorrere all'interno di unWebView
- Nuovo supporto per Multiprocess Espresso
su API 26 per
- Corsa
-
InterceptingActivityFactory
eSingleActivityFactory
– Offre la possibilità di testare un'attività in modo isolato dal mondo esterno, eseguendo l'override di metodi comestartService()
esendBroadcast()
-
Aggiungi il supporto per l'utilizzo di JUnitParams con
AndroidJUnitRunner
-
Inizia a gestire
@UiThreadTest
a livello di runner test principale e depreca@UiThreadTestRule
: in questo modo è possibile utilizzare l'annotazione@UiThreadTest
direttamente sui metodi annotati con@Before
e@After
-
L'annotazione
@SdkSupress
ora supporta il valoremaxSdkVersion
(Problema 37067792) -
-e classLoader
– Consenti di superare i caricatori delle classi utilizzando gli argomenti runner -
-e filter
- Aggiungi il supporto per la specifica di filtri JUnit personalizzati utilizzando argomenti runner -
-e runnerBuilder
: consente agli sviluppatori di fornire le proprie implementazioni diRunnerBuilder
per determinare se e come possono essere eseguite in relazione a una classe specifica
-
- Regole
ProviderTestRule
– Nuova API per testareContentProvider
oggettigetActivityResult()
eActivityResultMatchers
– Nuova API per recuperare il risultato dell'attività di un'attività che ha chiamatosetResult()
- AndroidTestOrchestrator
- Android Test Orchestrator offre un nuovo modo di raccogliere ed eseguire i test, con particolare attenzione alla correttezza e all'isolamento. Orchestrator è un processo di strumentazione indipendente che genera un processo di esecuzione della strumentazione per ogni test e raccoglie i risultati.
- Gli arresti anomali dell'applicazione eliminano la strumentazione dell'esecuzione, ma non l'agente di orchestrazione, consentendo alla tua suite di test di continuare
- Richiede l'installazione dell'APK dell'agente di orchestrazione –
'com.android.support.test:orchestrator:1.0.0'
- La versione 1.0 ha solo un'interfaccia a riga di comando. È prevista l'integrazione con Android Studio e Firebase Test Labs
- Android Test Orchestrator offre un nuovo modo di raccogliere ed eseguire i test, con particolare attenzione alla correttezza e all'isolamento. Orchestrator è un processo di strumentazione indipendente che genera un processo di esecuzione della strumentazione per ogni test e raccoglie i risultati.
Correzioni di bug
- Caffè
- Miglioramento della sincronizzazione della vista principale per ridurre notevolmente le irregolarità
- Correggi il danneggiamento di
IdlingResourceRegistry
- Migliore sincronizzazione con gli oggetti
IdlingResource
- Problema 37132680: Espresso non attende il completamento della creazione della finestra di dialogo prima di eseguire l'azione successiva
- Problema 37103280: Espresso deve spedire le regole per consumatori ProGuard per evitare che i consumatori le aggiungano
- Problema 37094726: Espresso Intents contiene un'etichetta dell'applicazione non necessaria
- Problema 37093953: Espresso: nessun segno di errore disponibile per il testo di errore nullo/vuoto
- Problema 37071776:
espresso-core
incorpora i file.pom
di Guava - Problema 37062612: NPE in
release()
- Problema 37063389: se le dipendenze Guava e
espresso-web
comeandroidTest
non vengono compilate - Problema 37070533: aggiungi il supporto per
NavigationView
nella Android Design Support Library
- Corsa
-
Correggi la possibilità di utilizzare
@UiThreadTest
in combinazione con@Test(timeout = 123)
- Argomento runner
-e notClass
corretto - È stato corretto
-e log
per supportare le suite di test JUnit3 e JUnit4, nonché per i runnerParameterized
eEnclosed
- Problema 37663530: attendi il completamento di tutte le attività prima e dopo ogni metodo di test
- Problema 37132680: Espresso non attende il completamento della creazione della finestra di dialogo prima di eseguire l'azione successiva
-
Problema 37123213:
@RequiresDevice
ignorato su x86_64 ABI -
Problema 37101485: alcuni argomenti forniti dal file manifest per
AndroidJUnitRunner
, ad esempio le dimensioni del test, l'annotazione e il debug, vengono ignorati - Problema 37082857: l'esecuzione del test semi-parallelo di Espresso non va a buon fine su oggetti statici
-
Problema 37063396: contesto non inizializzato
con
ProviderTestCase2
(causaNullPointerException
)
-
Correggi la possibilità di utilizzare
- Regole
- Risolto il
ActivityTestRule
ciclo di vita per unificare il comportamento nell'inizializzazioneActivityTestRule
regolare e lazy - Problema 37079943: correggi
ServiceTestRule
per consentire il riassociazione - Problema 37109342: Aggiungi
getActivityResult()
eActivityResultMatchers
- Risolto il
- UiAutomator
setUiAutomationFlags()
da usare conUiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES
: consente di usareUiAutomator
mentre sono in esecuzione altri servizi di accessibilità- Problema 37082813:
setText()
su oggettiEditText
vuoti generaNullPointerException
se il livello API è 19 o inferiore
Altre modifiche degne di nota
- I file binari ora vengono pubblicati tramite Google Maven
- Riduzione della dimensione dei file JAR
espresso-core
eespresso-web
, grazie all'applicazione di ProGuard per le dipendenze incorporate - Tutti i
.aar
file ora includono le regole ProGuard - Aggiungi
proguard_library.cfg
file agli artefatti rilasciati - L'interfaccia di
Tapper
include una nuova versione disendTap()
da implementare
Contributi esterni
- Caffè
- Corsa
- Regole
Espresso 2.2.2, Runner/Rules 0.5 (22/02/2016, rilascio silenzioso)
Nuove funzionalità
- espresso
- Problema 194253: Aggiunta del supporto per NavigationView nella libreria di progettazione del supporto Android
- Sono stati aggiunti controlli per le animazioni e le transizioni attivate
- Nuova API
ViewMatcher
:withResourceName()
Correzioni di bug
- espresso
- Problema 195331: espresso-core incorpora i file pom di guava
- Risorsa inattiva per il conteggio spostata fuori dal contributo espresso
- regole
- Problema 187249: NPE a
Intents.release()
- Problema 187249: NPE a
- runner
- Problema 196066: l'argomento
-e log true
inAndroidJUnitRunner
non ignora il test effettivo - Attendi il debugger in
onCreate()
del runner - Spostate tutte le annotazioni di test supportate fuori dalla piattaforma e in ATSL
- È stato rimosso il dump dell'analisi dello stack relativo all'assenza di JSBridge
AndroidAnnotatedBuilder
corretti
- Problema 196066: l'argomento
Altre modifiche degne di nota
ActivityTestRule
,UiThreadTestRule
,IntentsTestRule
eServiceTestRule
non sono più in versione beta- Aggiungi un file di impostazioni degli stili di codice per una formattazione uniforme del codice
Espresso 2.2.1, Runner/Rules 0.4 (2015-09-15)
Nuove funzionalità
- regole
- Nuovo costruttore
IntentsTestRule
aggiunto per la compatibilità completa conActivityTestRule
- Nuovo costruttore
- runner
- Aggiunta l'installazione del caso speciale multidex per i livelli API 15 e precedenti
- Filtri di esclusione aggiunti a classe e pacchetto:
- Esecuzione di tutti i test tranne quelli di una determinata classe:
adb shell am instrument -w -e notClass com.android.foo.FooTest
- Esecuzione di tutti i test tranne uno:
adb shell am instrument -w -e notClass com.android.foo.FooTest#testFoo
- Esecuzione di tutti i test tranne per un determinato pacchetto:
adb shell am instrument -w -e notPackage com.android.foo.bar
- Esecuzione di tutti i test tranne quelli di una determinata classe:
Contributi esterni
- espresso
- 157911: aggiungi il matcher vista per il tipo di input su un oggetto
EditText
- 157912: aggiungi il matcher vista per il testo dell'errore di corrispondenza su un oggetto
EditText
- 150674: aggiungi il supporto
DrawerActions
per i cassetti con gravità arbitraria - 150744:
DrawerActions
non più divulgataparentListener
- 153303: la gravità specificata nei controlli "Il cassetto è aperto o chiuso".
- 157910: aggiungi
DrawerLayout
stabilimenti di azione aperti e chiusi
- 157911: aggiungi il matcher vista per il tipo di input su un oggetto
Correzioni di bug
- espresso
ViewActions.closeSoftKeyboard()
ora assicura che la tastiera soft sia del tutto rimossa- È stato risolto il problema di sincronizzazione con il metodo
Espresso.pressBack()
di Espresso su API 21 e livelli successivi - È stata corretta la sincronizzazione per le animazioni di chiusura della tastiera nel livello API 23
- regole
- Corretto
ServiceTestRule
nel livello API 23,startService()
deve sempre essere chiamato con unIntent
esplicito
- Corretto
- runner
- Supporto
JaCoCo
di Gradle non funzionante corretto - Risolto il problema del supporto dello sharding di test
- È stato risolto lo stato incoerente nell'esecutore del test dopo
JUnit3
timeout del test dello stile
- Supporto
Altre modifiche degne di nota
- Correzioni di Javadoc e miglioramenti dei messaggi di errore
- Ignora i metodi
suite()
e non ignorare gli errori di inizializzazione quando utilizzi i filtri dei metodi
Espresso 2.2 / ATSL 0.3 (2015-06-09)
Nuove funzionalità
- espresso-web 2.2
- Nuova assistenza per
WebView
- Nuova assistenza per
- espresso-core 2.2
- Migrazione per utilizzare Dagger v2
- Migrazione per utilizzare hamcrest v1.3
- contribuzione-espresso 2.2
- Controlli di accessibilità
- Supporto di gravità
DrawerActions
- regole 0.3
DisableOnAndroidDebug
regola
- runner 0.3
- Aggiornamento da JUnit v4.10 a JUnit v4.12
- Migrazione per utilizzare Hamcrest v1.3
Correzioni di bug
- Risolta la perdita di
DrawerActions
da parte diParentListener
- Un errore di supposizione viene ora considerato come un test di Ignora anziché come un test non riuscito
- È stato risolto il problema di
MonitoringInstrumentation
istanze di attività in perdita tramiteExecutorService
- Risolto il problema che causava il blocco di attività orfane nella fase arrestata
- Aggiorna
Until.scrollFinished()
in modo che restituisca true se non sono stati generati eventi di scorrimento. Proteggerti da potenziali deteriorati nelUiObject2#setText()
.
Espresso 2.1, Test Runner/Rules 0.2 e UIAutomator 2.1.0 (21-04-2015)
Modifiche che provocano un errore
- L'artefatto del runner di test è stato suddiviso in due e il nome è cambiato da
com.android.support.test:testing-support-lib:0.1
acom.android.support.test:runner:0.2
ecom.android.support.test:rules:0.2
.
Nuove funzionalità
- espresso-intents: un'API di tipo simulato che consente i test ermetici dell'interattività consentendo agli autori dei test di verificare e accorciare gli intent in uscita.
IntentsTestRule
: estendeActivityTestRule
, inizializzato e rilascia Espresso-Intents nei test funzionali dell'interfaccia utente
- espresso-core
ViewActions
: è stata aggiunta la possibilità di eseguire asserzioni globali prima di eseguire azioni. Questo è utile per altri framework che si basano su Espresso per convalidare lo stato della gerarchia di visualizzazione durante l'esecuzione della suite di test Espresso esistente- Sovraccarico di
ViewMatchers.withContentDescription()
resId
- regole
ActivityTestRule
: questa regola consente di eseguire test funzionali di una singola attività- Annotazioni
UiThreadRule
eUiThreadTest
: questa regola consente al metodo di test annotato conUiThreadTest
di essere eseguito nel thread principale (o nel thread dell'interfaccia utente) dell'applicazione. ServiceTestRule
: questa regola consente di eseguire test funzionali di un servizio
- runner
ApplicationLifecycleCallback
: callback per il monitoraggio degli eventi del ciclo di vita dell'applicazione- Ora tutti gli argomenti runner possono essere specificati anche nel file manifest Android utilizzando un tag
<meta-data>
- UIAutomator
UiDevice.dumpWindowHierarchy()
ora può accettareFile
oOutputStream
Correzioni di bug
- espresso
- Il matcher cursore ora restituisce
false
se la colonna non è stata trovata, in modo che Hamcrest possa passare al cursore successivo NullPointerException
conPreferenceMatchers
withTitle
non si verifica più- L'annullamento della registrazione della risorsa inattiva non fa più sì che Espresso ritenga che siano presenti risorse inattive
- Versione delle annotazioni dell'assistenza aggiornata utilizzata da Espresso Contrib
- Il matcher cursore ora restituisce
- runner
AndroidJUnit4
ora ignora i test con ipotesi non corrette
- UIAutomator
- Esegui gli osservatori per evitare
StaleObjectException
- Esegui gli osservatori per evitare
Altre modifiche degne di nota
- Aggiungi un messaggio di errore migliore quando non è possibile digitare un testo con una stringa non latina
UIAutomator 2.0 (12/03/2015)
UI Automator ora è basato sulla strumentazione Android e puoi creare ed eseguire
test utilizzando il comando ./gradlew connectedCheck
.
Espresso Versione 2.0, Test Runner 0.1 (Data di rilascio: 19/12/2014)
Modifiche che provocano un errore
- Il caffè espresso è stato spostato in un nuovo spazio dei nomi, da
android.support.test.espresso
aandroid.support.test.espresso
- Gli artefatti Espresso sono stati rinominati
espresso-1.1.jar
ora èespresso-core-release-2.0.jar
- L'interfaccia di
IdlingResource
è stata spostata in una libreria separata:espresso-idling-resource-release-2.0.jar
CountingIdlingResource
ora si trova inespresso-contrib-release-2.0.jar
(come dovrebbe aver sempre)
- Il parametro Facoltativo (una dipendenza guava) è stato rimosso dall'API pubblica per supportare la ripacchettizzazione della dipendenza guava ed evitare la collisione con DEX (una delle principali fonti di problemi per lo sviluppo). I metodi interessati includono:
ViewAssertion.check()
HumanReadables.getViewHierarchyErrorMessage()
Nuove funzionalità
- Azioni
ViewActions
replaceText()
openLink()
- Scorri verso l'alto e il basso
- contributi-espresso
RecyclerViewActions
: gestisce le interazioni conRecyclerViews
PickerActions
: gestisce le interazioni con i selettoriDate
eTime
- Partite
RootMatchers
isPlatformPopup()
ViewMatchers
isJavascriptEnabled()
withSpinnerText()
withHint()
isSelected()
hasLinks()
LayoutMatchers
: matcher per i test del layout correlati a i18nCursorMatchers
: una raccolta di matcher perCursor
oggetti
- Asserzioni
PositionAssertions
, tra cuiisLeftOf()
eisAbove()
: raccolta diViewAssertions
per controllare la posizione relativa degli elementi sullo schermoLayoutAssertions
: asserzioni per i test del layout relativi a i18n
- App di prova: molte nuove attività/test di esempio
- Altro
Espresso.unregisterIdlingResources()
eEspresso.getIdlingResources()
: offrono maggiore flessibilità per lavorare conIdlingResources
ViewInteraction.withFailureHandler()
: consente di eseguire l'override del gestore degli errori daonView()
- Supporto di
onData()
perAdapterViews
supportato daCursorAdapters
Correzioni di bug
ViewMatchers.isDisplayed()
corrisponde alle visualizzazioni che occupano l'intero schermo, ma non più del 90%- L'esecuzione dell'invito di azione di scorrimento verso
DrawerActions.openDrawer()
non genera piùIdlingResourceTimeoutException
Altre modifiche degne di nota
- Passaggio dalla creazione con Maven a Gradle
- Spostate le dipendenze del caffè espresso (Guava, Dagger, Hamcrest) per evitare le collisioni DEX
- Modificato in modo che restituisca un errore o un esito positivo durante la registrazione e l'annullamento della registrazione delle risorse inattive
- Supporto di Lollipop: inserisci
message.recycle()
dietro un'interfaccia per tenere conto delle modifiche relative alla versione - Il livello dell'SDK target è cambiato a 21, che influisce principalmente sull'app di prova
Versione 1.1 (rilasciato il: 08-01-2014)
espresso
- Nuovi
swipeLeft
eswipeRight
ViewActions
- Supporto multi-finestra: funzionalità avanzata che consente di scegliere la finestra di destinazione su cui Espresso deve eseguire l'operazione
- Miglioramenti apportati a
TypeTextAction
: consente di digitare testo in una visualizzazione preimpostata, che semplifica l'aggiunta del testo - Numerose correzioni di bug
Libreria Contrib del caffè espresso
- Questa nuova libreria contiene funzionalità che integrano espresso, ma non fanno parte della libreria di base
- Novità di
DrawerActions
per l'uso suDrawerLayout
: ha una dipendenza dalla libreria di assistenza Android, pertanto la stiamo nascondendo al di fuori della libreria Espresso di base
Test di esempio
- Questi test sono stati collocati in modo da essere presenti nello stesso pacchetto dell'app di test
- I POM Maven sono stati corretti per rimuovere i deps guava duplicati, pertanto
mvn install
dovrebbe funzionare ora