Instructions de configuration d'Espresso

Ce guide explique comment installer Espresso à l'aide de SDK Manager et le compiler à l'aide de Gradle. Nous vous recommandons d'utiliser Android Studio.

Configurer votre environnement de test

Pour éviter les erreurs, nous vous recommandons vivement de désactiver les animations système sur les appareils virtuels ou physiques utilisés pour les tests. Sur votre appareil, sous Settings > Developer options (Paramètres > Options pour les développeurs), désactivez les trois paramètres suivants:

  • Échelle d'animation des fenêtres
  • Échelle d'animation des transitions
  • Échelle de durée d'animation

Ajouter des dépendances Espresso

Pour ajouter des dépendances Espresso à votre projet, procédez comme suit:

  1. Ouvrez le fichier build.gradle de votre application. Il ne s'agit généralement pas du fichier build.gradle de premier niveau, mais app/build.gradle.
  2. Ajoutez les lignes suivantes à l'intérieur des dépendances:

Groovy

androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
androidTestImplementation 'androidx.test:runner:1.4.0'
androidTestImplementation 'androidx.test:rules:1.4.0'

Kotlin

androidTestImplementation('androidx.test.espresso:espresso-core:3.4.0')
androidTestImplementation('androidx.test:runner:1.4.0')
androidTestImplementation('androidx.test:rules:1.4.0')

Affichez l'ensemble complet des dépendances Gradle.

Définir l'exécuteur d'instrumentation

Ajoutez au même fichier build.gradle la ligne suivante dans android.defaultConfig:

Groovy

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

Kotlin

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

Exemple de fichier de compilation 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.4.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}

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.4.0')
    androidTestImplementation('androidx.test.espresso:espresso-core:3.4.0')
}

Analytics

Pour nous assurer d'être sur la bonne voie avec chaque nouvelle version, le lanceur de test collecte des données analytiques. Plus précisément, il importe un hachage du nom de package de l'application testée pour chaque appel. Cela nous permet de mesurer à la fois le nombre de packages uniques à l'aide d'Espresso et le volume d'utilisation.

Si vous ne souhaitez pas importer ces données, vous pouvez les désactiver en incluant l'argument disableAnalytics dans votre commande d'instrumentation:

adb shell am instrument -e disableAnalytics true

Ajouter le premier test

Android Studio crée des tests par défaut dans src/androidTest/java/com.example.package/.

Exemple de test JUnit4 utilisant des règles:

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()));
    }
}

Exécuter des tests

Vous pouvez exécuter vos tests dans Android Studio ou depuis la ligne de commande.

Dans Android Studio

Pour créer une configuration de test dans Android Studio, procédez comme suit:

  1. Ouvrez Run > Edit Configurations (Exécuter > Modifier les configurations).
  2. Ajoutez une nouvelle configuration de tests Android.
  3. Choisissez un module.
  4. Ajouter un exécuteur d'instrumentation spécifique: androidx.test.runner.AndroidJUnitRunner
  5. Exécutez la configuration que vous venez de créer.

Depuis la ligne de commande

Exécutez la commande Gradle suivante:

./gradlew connectedAndroidTest