Questa guida illustra come installare Espresso utilizzando SDK Manager e come compilarlo utilizzando Gradle. Si consiglia Android Studio.
Configurare l'ambiente di test
Per evitare incoerenze, ti consigliamo vivamente di disattivare le animazioni di sistema sui dispositivi virtuali o fisici utilizzati per i test. Sul dispositivo, in Impostazioni > Opzioni sviluppatore, disattiva le tre seguenti impostazioni:
- Scala animazione finestra
- Scala animazione transizione
- Scala durata animatore
Aggiungi le dipendenze di Espresso
Per aggiungere le dipendenze di Espresso al progetto:
- Apri il file
build.gradle
dell'app. Di solito non si tratta del filebuild.gradle
di primo livello, ma diapp/build.gradle
. - Aggiungi le seguenti righe all'interno di dependencies:
Groovy
androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' androidTestImplementation 'androidx.test:runner:1.6.1' androidTestImplementation 'androidx.test:rules:1.6.1'
Kotlin
androidTestImplementation('androidx.test.espresso:espresso-core:3.6.1') androidTestImplementation('androidx.test:runner:1.6.1') androidTestImplementation('androidx.test:rules:1.6.1')
Visualizza l'insieme completo delle dipendenze Gradle.
Impostare il runner di misurazione
Aggiungi la seguente riga allo stesso file build.gradle
in
android.defaultConfig
:
Groovy
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
Kotlin
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
Esempio di file di build Gradle
Groovy
plugins { id 'com.android.application' } android { compileSdkVersion 33 defaultConfig { applicationId "com.my.awesome.app" minSdkVersion 21 targetSdkVersion 33 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } } dependencies { androidTestImplementation 'androidx.test:runner:1.6.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' }
Kotlin
plugins { id("com.android.application") } android { compileSdkVersion(33) defaultConfig { applicationId = "com.my.awesome.app" minSdkVersion(21) targetSdkVersion(33) versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } } dependencies { androidTestImplementation('androidx.test:runner:1.6.1') androidTestImplementation('androidx.test.espresso:espresso-core:3.6.1') }
Analytics
Per assicurarci di essere sulla strada giusta con ogni nuova release, il test runner raccoglie dati e analisi. Nello specifico, carica un hash del nome del pacchetto dell'applicazione in test per ogni chiamata. In questo modo possiamo misurare sia il conteggio dei pacchetti unici che utilizzano Espresso sia il volume di utilizzo.
Se non vuoi caricare questi dati, puoi disattivare la funzionalità includendo l'argomento disableAnalytics
nel comando di misurazione:
adb shell am instrument -e disableAnalytics true
Aggiungi il primo test
Per impostazione predefinita, Android Studio crea i test in
src/androidTest/java/com.example.package/
.
Esempio di test JUnit4 che utilizza le regole:
Kotlin
@RunWith(AndroidJUnit4::class) @LargeTest class HelloWorldEspressoTest { @get:Rule val activityRule = ActivityScenarioRule(MainActivity::class.java) @Test fun listGoesOverTheFold() { onView(withText("Hello world!")).check(matches(isDisplayed())) } }
Java
@RunWith(AndroidJUnit4.class) @LargeTest public class HelloWorldEspressoTest { @Rule public ActivityScenarioRule<MainActivity> activityRule = new ActivityScenarioRule<>(MainActivity.class); @Test public void listGoesOverTheFold() { onView(withText("Hello world!")).check(matches(isDisplayed())); } }
Esegui test
Puoi eseguire i test in Android Studio o dalla riga di comando.
In Android Studio
Per creare una configurazione di test in Android Studio, completa i seguenti passaggi:
- Apri Esegui > Modifica configurazioni.
- Aggiungi una nuova configurazione di Test Android.
- Scegli un modulo.
- Aggiungi un runner di strumenti specifico:
androidx.test.runner.AndroidJUnitRunner
- Esegui la configurazione appena creata.
Dalla riga di comando
Esegui il seguente comando Gradle:
./gradlew connectedAndroidTest