В этом руководстве рассматривается установка 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