В этом руководстве рассказывается, как установить Espresso с помощью SDK Manager и собрать его с помощью Gradle. Рекомендуем использовать Android Studio.
Настройте тестовую среду
Чтобы избежать нестабильности, настоятельно рекомендуем отключить системную анимацию на виртуальных или физических устройствах, используемых для тестирования. На устройстве выберите Настройки > Для разработчиков и отключите следующие три параметра:
- Анимация окон
- Анимация переходов
- Длительность анимации
Добавление зависимостей Espresso
Чтобы добавить зависимости Espresso в проект, выполните следующие действия:
- Откройте файл
build.gradleсвоего приложения. Обычно это не файл верхнего уровняbuild.gradle, аapp/build.gradle. - Добавьте в раздел dependencies следующие строки:
Яркий
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')
Посмотреть полный набор зависимостей Gradle
Настройте средство запуска инструментирования
Добавьте в тот же файл build.gradle следующую строку в android.defaultConfig:
Яркий
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
Kotlin
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
Пример файла сборки Gradle
Яркий
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') }
Аналитика
Чтобы мы могли убедиться, что каждый новый выпуск работает правильно, средство запуска тестов собирает аналитические данные. В частности, при каждом вызове загружается хеш названия пакета тестируемого приложения. Это позволяет нам отслеживать как количество уникальных пакетов, использующих Espresso, так и объем использования.
Если вы не хотите загружать эти данные, вы можете отказаться от этого, включив аргумент disableAnalytics в команду инструментирования:
adb shell am instrument -e disableAnalytics true
Добавить первый тест
По умолчанию Android Studio создает тесты в каталоге src/androidTest/java/com.example.package/.
Пример теста JUnit4 с использованием правил:
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())); } }
Запустить тесты
Тесты можно запускать в Android Studio или из командной строки.
В Android Studio
Чтобы создать тестовую конфигурацию в Android Studio, выполните следующие действия:
- Выберите Run (Запуск) > Edit Configurations (Изменить конфигурации).
- Добавьте новую конфигурацию Android Tests.
- Выберите модуль.
- Добавьте определенный инструмент запуска:
androidx.test.runner.AndroidJUnitRunner. - Запустите только что созданную конфигурацию.
Как изменить протокол с помощью командной строки
Выполните следующую команду Gradle:
./gradlew connectedAndroidTest