Ten przewodnik opisuje instalowanie Espresso za pomocą SDK Manager i kompilowanie go za pomocą Gradle. Zalecamy Android Studio.
Konfigurowanie środowiska testowego
Aby uniknąć niestabilności, zdecydowanie zalecamy wyłączenie animacji systemowych na urządzeniach wirtualnych lub urządzeniach fizycznych używanych do testowania. Na urządzeniu w sekcji Ustawienia > Opcje programisty wyłącz te 3 ustawienia:
- Skala animacji okna
- Skala animacji przejścia
- Skala długości animacji
Dodawanie zależności Espresso
Aby dodać do projektu zależności Espresso, wykonaj te czynności:
- Otwórz plik
build.gradleaplikacji. Zwykle nie jest to plikbuild.gradlenajwyższego poziomu, aleapp/build.gradle. - Dodaj te wiersze w zależnościach:
Dynamiczny
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')
Wyświetl pełny zestaw zależności Gradle
Ustawianie modułu uruchamiającego instrumentację
Dodaj do tego samego pliku build.gradle ten wiersz w sekcji android.defaultConfig:
Dynamiczny
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
Kotlin
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
Przykładowy plik kompilacji Gradle
Dynamiczny
plugins { id 'com.android.application' } android { compileSdkVersion 36 defaultConfig { applicationId "com.my.awesome.app" minSdkVersion 23 targetSdkVersion 36 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(36) defaultConfig { applicationId = "com.my.awesome.app" minSdkVersion(23) targetSdkVersion(36) 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') }
Analityka
Aby mieć pewność, że każda nowa wersja działa prawidłowo, moduł uruchamiający testy zbiera statystyki. Dokładniej rzecz ujmując, przy każdym wywołaniu przesyła on skrót nazwy pakietu testowanej aplikacji. Dzięki temu możemy mierzyć zarówno liczbę unikalnych pakietów korzystających z Espresso, jak i wielkość wykorzystania.
Jeśli nie chcesz przesyłać tych danych, możesz zrezygnować, dodając argument disableAnalytics w poleceniu instrumentacji:
adb shell am instrument -e disableAnalytics true
Dodawanie pierwszego testu
Android Studio domyślnie tworzy testy w src/androidTest/java/com.example.package/.
Przykładowy test JUnit4 z użyciem reguł:
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())); } }
Przeprowadzanie testów
Testy możesz uruchamiać w Android Studio lub z poziomu wiersza poleceń.
W Android Studio
Aby utworzyć konfigurację testową w Android Studio, wykonaj te czynności:
- Kliknij Run > Edit Configurations (Uruchom > Edytuj konfiguracje).
- Dodaj nową konfigurację testów Androida.
- Wybierz moduł.
- Dodaj konkretny moduł uruchamiający instrumentację:
androidx.test.runner.AndroidJUnitRunner - Uruchom nowo utworzoną konfigurację.
W wierszu poleceń
Uruchom to polecenie Gradle:
./gradlew connectedAndroidTest