W tym przewodniku omawiamy instalowanie Espresso za pomocą Menedżera pakietu SDK i kompilowanie go za pomocą Gradle. Zalecamy użycie Android Studio.
Konfigurowanie środowiska testowego
Aby uniknąć problemów, zdecydowanie zalecamy wyłączenie animacji systemowych na urządzeniach wirtualnych lub 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ć zależności Espresso do projektu, wykonaj te czynności:
- Otwórz plik
build.gradle
aplikacji. Zwykle nie jest to plik najwyższego poziomubuild.gradle
, aleapp/build.gradle
. - Dodaj te wiersze w zależnościach:
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')
Wyświetl pełny zestaw zależności Gradle.
Konfigurowanie narzędzia do testowania
Dodaj do tego samego pliku build.gradle
ten wiersz w pliku android.defaultConfig
:
Groovy
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
Kotlin
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
Przykładowy plik kompilacji 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') }
Statystyki
Aby mieć pewność, że każda nowa wersja jest na właściwej drodze, testrunner zbiera dane analityczne. W konkretnym przypadku wczytuje hasz nazwy pakietu aplikacji poddanej testom w przypadku każdego wywołania. Dzięki temu możemy mierzyć zarówno liczbę unikalnych pakietów korzystających z Espresso, jak i objętość ich wykorzystania.
Jeśli nie chcesz przesyłać tych danych, możesz zrezygnować z tego procesu, dodając argument disableAnalytics
do polecenia narzędzia:
adb shell am instrument -e disableAnalytics true
Dodawanie pierwszego testu
Domyślnie Android Studio tworzy testy w src/androidTest/java/com.example.package/
.
Przykład testu JUnit4 z wykorzystaniem 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:
- Kliknij Uruchom > Edytuj konfiguracje.
- Dodawanie nowej konfiguracji testów Androida
- Wybierz moduł.
- Dodaj konkretnego wykonawcę pomiarów:
androidx.test.runner.AndroidJUnitRunner
- Uruchom nowo utworzoną konfigurację.
Z poziomu wiersza poleceń
Uruchom to polecenie Gradle:
./gradlew connectedAndroidTest