В этом руководстве рассматривается установка Espresso с помощью SDK Manager и сборка с помощью Gradle. Рекомендуется Android Studio.
Настройте тестовую среду
Чтобы избежать нестабильной работы, мы настоятельно рекомендуем отключить системную анимацию на виртуальных или физических устройствах, используемых для тестирования. На вашем устройстве в разделе «Настройки» > «Параметры разработчика » отключите следующие 3 параметра:
- Масштаб анимации окна
- Масштаб анимации перехода
- Шкала длительности аниматора
Добавить зависимости Espresso
Чтобы добавить зависимости Espresso в свой проект, выполните следующие действия:
- Откройте файл
build.gradle
вашего приложения. Обычно это не файлbuild.gradle
верхнего уровня, аapp/build.gradle
. - Добавьте следующие строки в зависимости:
Круто
androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' androidTestImplementation 'androidx.test:runner:1.6.1' androidTestImplementation 'androidx.test:rules:1.6.1'
Котлин
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"
Котлин
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
Пример файла сборки Gradle
Круто
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' }
Котлин
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') }
Аналитика
Чтобы убедиться, что мы движемся в правильном направлении с каждым новым релизом, инструмент тестирования собирает аналитику. В частности, он загружает хэш имени пакета тестируемого приложения при каждом вызове. Это позволяет нам измерять как количество уникальных пакетов, использующих Espresso, так и объём использования.
Если вы не хотите загружать эти данные, вы можете отказаться, включив аргумент disableAnalytics
в команду инструментария:
adb shell am instrument -e disableAnalytics true
Добавьте первый тест
Android Studio создает тесты по умолчанию в src/androidTest/java/com.example.package/
.
Пример теста JUnit4 с использованием правил:
Котлин
@RunWith(AndroidJUnit4::class) @LargeTest class HelloWorldEspressoTest { @get:Rule val activityRule = ActivityScenarioRule(MainActivity::class.java) @Test fun listGoesOverTheFold() { onView(withText("Hello world!")).check(matches(isDisplayed())) } }
Ява
@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, выполните следующие действия:
- Откройте Выполнить > Изменить конфигурации .
- Добавьте новую конфигурацию Android Tests.
- Выберите модуль.
- Добавьте определенный инструментарий для запуска:
androidx.test.runner.AndroidJUnitRunner
- Запустите вновь созданную конфигурацию.
Из командной строки
Выполните следующую команду Gradle:
./gradlew connectedAndroidTest