В этом руководстве описывается установка Espresso с помощью SDK Manager и его сборка с помощью Gradle. Рекомендуется Android Studio.
Настройте тестовую среду
Чтобы избежать нестабильности, мы настоятельно рекомендуем отключить системную анимацию на виртуальных или физических устройствах, используемых для тестирования. На вашем устройстве в разделе «Настройки» > «Параметры разработчика» отключите следующие 3 параметра:
- Масштаб анимации окна
- Масштаб анимации перехода
- Шкала продолжительности анимации
Добавить зависимости эспрессо
Чтобы добавить зависимости 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-студии
Чтобы создать тестовую конфигурацию в Android Studio, выполните следующие шаги:
- Откройте «Выполнить» > «Изменить конфигурации» .
- Добавьте новую конфигурацию Android Tests.
- Выберите модуль.
- Добавьте конкретный исполнитель инструментов:
androidx.test.runner.AndroidJUnitRunner
- Запустите вновь созданную конфигурацию.
Из командной строки
Выполните следующую команду Gradle:
./gradlew connectedAndroidTest