AndroidX Test Espresso 3.1.1, Runner 1.1.1, Rules 1.1.1, Monitor 1.1.1 AndroidTestOrchestrator 1.1.1, Core 1.1.0, Truth 1.1.0, JUnit 1.1.0 (13 декабря 2018 г.)
Это стабильная версия AndroidX Test 1.1.0.
- Основной
- Сделайте так, чтобы ActivityScenario поддерживал действия, которые запускают другое действие.
AndroidX Test Espresso 3.1.1-beta01, Runner 1.1.1-beta01, Rules 1.1.1-beta01, Monitor 1.1.1-beta01 AndroidTestOrchestrator 1.1.1-beta01, Core 1.1.0-beta01 Truth 1.1.0-beta01, JUnit 1.1.0-beta01 (06.12.2018)
- Основной
- Новый артефакт расширения Kotlin для core-ktx! Включает API ActivityScenario.launchActivity, совместимый с Kotlin.
- Новый API ActivityScenario для запуска действий с пользовательскими намерениями
- Новый API ActivityScenario для получения результата Activity
- Сделать ActivityScenario закрываемым
- Эспрессо
- Измените withResourceNameMatcher и HumanReadables для совместимости с API 28.
- Обновите описание ReplaceTextAction, включив в него строкуToBeSet.
- Поддержка Espresso в режиме паузы Robolectric Looper.
- JUnit
- Новый API ActivityScenarioRule для автоматического запуска и закрытия Activity при настройке и завершении теста.
- Новый артефакт расширения junit-ktx для Kotlin! Включает API ActivityScenarioRule, совместимый с Kotlin.
- Бегун
- Сделать поведение -e package и -e testFile одинаковым при получении пакетов
- Правда
- Добавить API-интерфейсы bool, parcelable и parcelableAsType BundleSubject
AndroidX Test Espresso 3.1.0, Runner 1.1.0, Rules 1.1.0, Monitor 1.1.0 AndroidTestOrchestrator 1.1.0, Core 1.0.0 Truth 1.0.0, JUnit 1.0.0 (24.10.2018)
- Все
- Установите minSdkVersion на 14 и targetSdkVersion на 28.
- Эспрессо
- Исправление withContentDescription для работы с нестроковыми типами
- Добавить поддержку использования Espresso на Robolectric
- Проблема 72798625 : Espresso ViewMatchers.withText не работает при включенном textAllCaps
- Добавить поддержку внедрения последовательности событий движения.
- Намерения
- Добавлена бета-версия API для получения списка намерений. Предназначена для использования с новыми утверждениями об истинности.
- Бегун
- Добавить поддержку мгновенных приложений
- Отменить поддержку androidx.test.runner.AndroidJUnit4 и заменить на androidx.test.ext.junit.runners.AndroidJUnit4
- Монитор
- Отменить поддержку androidx.test.InstrumentationRegistry и заменить на androidx.test.platform.app.InstrumentationRegistry и androidx.test.core.app.ApplicationProvider
- AndroidTestOrchestrator
- Включать обработку покрытия оркестратора можно только в том случае, если переданы оба аргумента 'coverage' и 'coverageFilePath'.
- Ожидать отладчика только при установленном флаге -debug, но не при выводе тестовых случаев ATO. Добавлен новый флаг orchestratorDebug для отладки самого оркестратора.
- Основной
- Новый артефакт! Включает новые API, поддерживающие как локальные, так и локальные тесты для:
- Получение контекста: ApplicationProvider
- Управление жизненными циклами активности: ActivityScenario(beta)
- Конструкторы для MotionEvent, PackageInfo
- Класс полезности Parceables
- Новый артефакт! Включает новые API, поддерживающие как локальные, так и локальные тесты для:
- Правда
- Новый артефакт! Включает пользовательские объекты истины для уведомлений, намерений, пакетов, парцелей и событий движения.
- JUnit
- Новый артефакт! Включает класс JUnit runner androidx.test.ext.junit.runners.AndroidJUnit4, который поддерживает как локальные, так и внутренние тесты.
Espresso 3.0.2-beta1, Runner 1.0.2-beta1, Rules 1.0.2-beta1, Monitor 1.0.2-beta1, AndroidTestOrchestrator 1.0.2-beta1 (16.04.2018)
- Эспрессо
- Критическое изменение API:
- В Issue 64062890 нам сообщили, что мы используем Guava Optional в нашем публичном API. Это было ужасным упущением с нашей стороны. В результате в этом выпуске внесено критически важное изменение в публичный API для решения этой проблемы. Мы добавили неуклюжую обёртку вокруг класса Guava Optional под названием EspressoOptional, которая находится в пространстве имён android.support.test.espresso.util. Разработчикам, использовавшим утекший Guava Optional API, необходимо изменить свои импорты и ссылки, чтобы использовать EspressoOptional, во время обновления до этой версии. Приносим извинения за возможные неудобства.
- API-интерфейсы onView() и onData() теперь помечены @CheckReturnValue для предотвращения ошибок.
- Исправлен POM-файл espresso-core: теперь зависимость «rules» не запрашивается. Вместо этого её запрашивает POM-файл espresso-intents. Это изменение должно быть необязательным для разработчиков, поскольку espresso-intents не может использоваться без espresso-core.
- Проблема 65486414 : в Espresso отсутствует зависимость от гуавы
- Проблема 65576174 : Espresso IdlingResourceRegistry.sync приводит к сбою второго теста
- Проблема 65568629 : Espresso.onIdle не использует IdlingRegistry
- Проблема 69333598 : espresso 3.0.1 несовместим с play-services-auth:11.6.0 в модуле библиотеки Android.
- Проблема 64062890 : Внутренний необязательный тип, предоставляемый интерфейсом AdapterViewProtocol
- Проблема 64091847 : Espresso 3.0.0 НЕ должен зависеть от тестового исполнителя
- Проблема 73722050 : пакеты espresso-contrib 3.0.2-alpha1 android.arch.{lifecycle/core} classes
- Критическое изменение API:
- Эспрессо-пульт
- Это совершенно новый артефакт. Мы выделили всю многопроцессную функциональность Espresso за пределы артефакта espresso-core. Это более понятно и должно значительно сократить общий размер espresso-core и количество методов.
- Бегун
- Усекать трассировку стека, если она слишком велика для транзакции Binder. Поскольку AJUR должен сообщать об ошибках обратно в AM через IPC Binder, нам нужно убедиться, что мы не превышаем лимит транзакций Binder, который составляет 1 МБ на процесс.
- Проблема 65828576 : сбой TestRequestBuilder при запуске теста в классе с @Ignore
- Проблема 37057596 : Мы не обрабатываем сбои в @BeforeClass
- Правила
- Обязательно верните ссылку на тестируемую активность после изменения жизненного цикла. Во время теста теперь можно напрямую управлять активностью, используя ссылку, полученную с помощью #getActivity(). Если активность завершена и перезапущена, ссылка, возвращаемая #getActivity(), теперь всегда указывает на текущий экземпляр активности.
- Проблема 64389280 : GrantPermissionRule не предоставляет WRITE_EXTERNAL_STORAGE
- Проблема 37065965 : ActivityTestRule пропускает активность после изменения ориентации
- Проблема 75254050 : ActivityTestRule не обновляет экземпляр Activity при изменении конфигурации.
- Проблема 64464625 : невозможно выполнить работу пользовательского интерфейса в методе finish() Activity.
- AndroidTestOrchestrator
- Передайте флаги
-e coverage true -e coverageFilePath /sdcard/foo/для создания файлов покрытия в указанном месте (приложение должно иметь разрешение на запись в указанное место). Соглашение об именовании файлов покрытия теперь выглядит следующим образом:com.foo.Class#method1.ec. Обратите внимание, что это поддерживается только при работе в изолированном режиме. Кроме того, этот флаг нельзя использовать вместе с флагомcoverageFileв AndroidJUnitRunner, поскольку сгенерированные файлы покрытия перезаписывают друг друга. - Передайте флаг
-e clearPackageDataесли хотите, чтобы оркестратор выполнял командыpm clear context.getPackageName()иpm clear targetContext.getPackageName()между вызовами тестов. Обратите внимание: контекст в команде clear — это контекст тестируемого приложения. - Исправлено — при запуске пустого теста, т. е. без @Test внутри цели, результат теста отличается от устаревшего режима.
- Проблема 72758547 : Test Orchestrator приводит к тому, что данные о покрытии Jacoco оказываются неполными, имеются только данные о последнем тестовом запуске.
- Проблема 67916042 : Android Test Orchestrator: выполнение остановлено из-за сбоя процесса из-за нехватки памяти
- Проблема 77752735 : Orchestrator аварийно завершает работу из-за TransactionTooLargeException
- Проблема 77549481 : Test Orchestrator должен запускать «pm clear» после каждого теста.
- Передайте флаги
Espresso 3.0.2-alpha1, Runner 1.0.2-alpha1, Rules 1.0.2-alpha1, AndroidTestOrchestrator 1.0.2-alpha1 (05.12.2017)
Эспрессо
- Теперь
Intentsесть вызываемый ответ, позволяющий выполнять тесты после захвата сработавшего намерения, но до возврата объектаInstrumentation.ActivityResult.
- Теперь
Бегун
Выделите артефакт maven монитора
com.android.support.test:monitor:<version>для пользователей, которым нуженMonitoringInstrumentationбез запуска тестов и функций JUnit.Если вы используете
com.android.support.test:runner:<version>, все работает так, как и ожидалось, потому что Gradle автоматически подтягивает модульmonitorкак зависимость модуляrunner.Добавлен флаг
newRunListenerOrderMode. Приtrueпользовательские прослушиватели запускаются до прослушивателей по умолчанию. (Мы ожидаем, что это поведение в конечном итоге станет поведением по умолчанию.)Проблема 65828576 :
TestRequestBuilderаварийно завершает работу при запуске тестов в классе, аннотированном@Ignore(автономно без запуска тестов или функций JUnit).
AndroidTestOrchestrator
- Теперь обрабатывает пустые тесты так же, как неорганизованный
AndroidJUnitRunner. - Orchestrator теперь может обрабатывать очень большой стандартный вывод
AndroidJUnitRunner.
- Теперь обрабатывает пустые тесты так же, как неорганизованный
Espresso 3.0.1, Runner 1.0.1, Rules 1.0.1, AndroidTestOrchestrator 1.0.1 (28.08.2017)
Эспрессо
- Добавлен параметр
IdlingPolicyдля подавленияonTimeout(), когда к виртуальной машине подключен пошаговый отладчик. - Проблемы 64024656 , 64247586 и 64525881 : Не сообщать о сбоях при неудачной загрузке классов, если пользователь не загружает определенные классы, включив аргумент
-eclass runner. - Проблема 64877246 : Добавить отсутствующие классы в исходный JAR-файл.
- Добавлен параметр
Бегун
- Упрощенная логика
ShardingFilter. - Проблема 65025743 : Фильтр
@RequiresDeviceтеперь поддерживает эмуляторы FTL.
- Упрощенная логика
AndroidTestOrchestrator
- Не дублируйте сообщения об ошибках. Если тестовый процесс аварийно завершается после сбоя, теперь для теста сообщается только об одной ошибке.
- Исправлен Javadoc для Orchestrator.
- Теперь тесты отмечаются как пропущенные в случае сбоя удаленного процесса.
- Теперь обрабатывает проигнорированные тестовые случаи.
- Теперь исключает проигнорированные тестовые случаи из нижнего колонтитула для соответствия устаревшим результатам.
- Исправлены проблемы с разрешениями во время выполнения. Отчёты о тестировании теперь записываются на SD-карту на Android 7.0 (уровень API 24) и выше.
Espresso 3.0.0, Runner 1.0.0, Rules 1.0.0, AndroidTestOrchestrator 1.0.0 (25 июля 2017 г., Анонс )
Критические изменения
- Все артефакты
- Прекращение поддержки API уровней ниже 15, однако минимальный SDK по-прежнему указывает на API уровня 9, чтобы дать пользователям время для обновления.
- Эспрессо
- Устаревший класс
android.support.test.espresso.contrib.CountingIdlingResourceбыл удален и перенесен вandroid.support.test.espresso.idling.CountingIdlingResource- Используйте
getInstance().register()вместоregisterIdlingResources()
- Используйте
- Guava теперь перенесена в другое «внутреннее» пространство имен — если вы случайно используете API Guava через пространства имен Espresso, вы можете столкнуться с поломками.
- Удалите все ссылки на затененную гуаву (
.core.deps.guava.) - Обновите версию вашей библиотеки поддержки до 25.4.0 или выше.
- Удалите все ссылки на затененную гуаву (
- Устаревший класс
Известные проблемы
- AndroidTestOrchestrator
- Аргументы
-e numShardsи-e shardIndexrunner в настоящее время не поддерживаются. - Параметризованные тесты в настоящее время не поддерживаются.
- Аргументы
Новые функции
- Эспрессо
- Новая поддержка многопроцессного Espresso в API 26 для
espresso-coreиespresso-web, но не дляespresso-contrib - Новый облегченный API
IdlingRegistry- Опубликовано как часть
com.android.support.test.espresso:espresso-idling-resource:3.0.0 - Устаревшие методы:
- Опубликовано как часть
- Новый API для синхронизации с
Executors- Новый артефакт Maven:
com.android.support.test.espresso.idling:idling-concurrent:3.0.0 - Содержит классы
IdlingScheduledThreadPoolExecutorиIdlingThreadPoolExecutor
- Новый артефакт Maven:
- Новый API для синхронизации с сетевыми запросами и ответами.
- Новый артефакт Maven:
com.android.support.test.espresso.idling:idling-net:3.0.0 - Содержит класс
UriIdlingResource
- Новый артефакт Maven:
- Новые сопоставления представлений
espresso-core:-
hasBackground()соответствует ресурсу рисования фона объектаView -
hasTextColor()сопоставляется с цветом объектаTextView
-
- Новые методы действий представления:
- Улучшено действие представления
scrollTo()для работы с потомкамиListView -
repeatedlyUntil()— выполняет заданноеViewActionнад представлением, пока представление не совпадет с требуемымиViewMatchers
- Улучшено действие представления
- Новые методы приготовления эспрессо:
-
pressBackUnconditionally()– аналогичноpressBack(), но не выдает исключение при навигации Espresso -
noActivity()– устраняет необходимость ожидания активности перед выполнениемViewActionилиViewAssertion -
onIdle()– цикл основного потока, пока приложение не перейдет в режим ожидания -
onIdle(Callable<T>)— то же, что иonIdle(), но принимает в качестве параметра дополнительныйCallable, который выполняется после того, как приложение переходит в режим ожидания.
-
-
webScrollIntoView()– новый атомespresso-web, позволяющий прокручивать внутриWebView
- Новая поддержка многопроцессного Espresso в API 26 для
- Бегун
-
InterceptingActivityFactoryиSingleActivityFactory— предоставляют возможность тестирования активности в изоляции от внешнего мира путем переопределения таких методов, какstartService()иsendBroadcast() - Добавить поддержку использования JUnitParams с
AndroidJUnitRunner - Начать обработку
@UiThreadTestна уровне основного средства выполнения тестов и прекратить поддержку@UiThreadTestRule. Это позволяет использовать аннотацию@UiThreadTestнепосредственно в методах, аннотированных@Beforeи@After - Аннотация
@SdkSupressтеперь поддерживает значениеmaxSdkVersion(ошибка 37067792 ) -
-e classLoader– Предоставляет возможность передавать загрузчики классов с помощью аргументов запуска -
-e filter– добавить поддержку пользовательских фильтров JUnit, которые можно указать с помощью аргументов запуска. -
-e runnerBuilder— позволяет разработчикам предоставлять собственные реализацииRunnerBuilder, которые могут определять, могут ли они работать с определенным классом и как это сделать.
-
- Правила
-
ProviderTestRule– новый API для тестирования объектовContentProvider -
getActivityResult()иActivityResultMatchers— новый API для получения результата действия, вызвавшегоsetResult()
-
- AndroidTestOrchestrator
- Android Test Orchestrator предлагает новый способ сбора и запуска тестов с акцентом на корректность и изоляцию. Orchestrator — это независимый процесс инструментирования, создающий отдельный процесс запуска инструментирования для каждого теста и собирающий результаты.
- Сбои приложения приводят к сбою инструментария исполнителя, но не оркестратора, что позволяет продолжить выполнение вашего тестового набора.
- Требуется установка APK-файла Orchestrator –
'com.android.support.test:orchestrator:1.0.0' - Версия 1.0 имеет только интерфейс командной строки; планируется интеграция с Android Studio и Firebase Test Labs.
- Android Test Orchestrator предлагает новый способ сбора и запуска тестов с акцентом на корректность и изоляцию. Orchestrator — это независимый процесс инструментирования, создающий отдельный процесс запуска инструментирования для каждого теста и собирающий результаты.
Исправления ошибок
- Эспрессо
- Улучшена синхронизация корневого представления для значительного снижения нестабильности
- Исправление повреждения
IdlingResourceRegistry - Лучшая синхронизация с объектами
IdlingResource - Проблема 37132680 : Espresso не дожидается завершения создания диалогового окна перед выполнением следующего действия.
- Проблема 37103280 : Espresso должен поставлять потребительские правила ProGuard, чтобы потребителям не требовалось их добавлять
- Проблема 37094726 : Espresso Intents содержит ненужную метку приложения
- Проблема 37093953 : Espresso: нет доступной проверки на наличие пустого/нулевого текста ошибки
- Проблема 37071776 :
espresso-coreвстраивает файлы.pomGuava - Выпуск 37062612 : NPE в
release() - Проблема 37063389 : Guava и
espresso-webв качестве зависимостейandroidTestне компилируются. - Проблема 37070533 : добавление поддержки
NavigationViewв библиотеку поддержки дизайна Android
- Бегун
- Исправлена возможность использования
@UiThreadTestв сочетании с@Test(timeout = 123) - Исправлен аргумент
-e notClassrunner - Исправлен
-e logдля поддержки тестовых наборов JUnit3 и JUnit4, а такжеParameterizedиEnclosedисполнителей. - Проблема 37663530 : Дождитесь завершения всех действий перед и после каждого метода тестирования.
- Проблема 37132680 : Espresso не дожидается завершения создания диалогового окна перед выполнением следующего действия.
- Проблема 37123213 :
@RequiresDeviceигнорируется в x86_64 ABI - Проблема 37101485 : некоторые аргументы, указанные в манифесте для
AndroidJUnitRunner, такие как размер теста, аннотация и отладка, игнорируются. - Проблема 37082857 : Выполнение полупараллельного теста Espresso завершается неудачей на статических объектах.
- Проблема 37063396 : Контекст не инициализирован с помощью
ProviderTestCase2(вызываетNullPointerException)
- Исправлена возможность использования
- Правила
- Исправлен жизненный цикл
ActivityTestRuleдля унификации поведения при обычной и ленивой инициализацииActivityTestRule - Проблема 37079943 : Исправление
ServiceTestRuleдля разрешения повторной привязки. - Проблема 37109342 : добавление
getActivityResult()иActivityResultMatchers
- Исправлен жизненный цикл
- UiAutomator
-
setUiAutomationFlags()для использования сUiAutomation.FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES– это позволяет использоватьUiAutomatorво время работы других служб специальных возможностей - Проблема 37082813 :
setText()для пустых объектовEditTextвыдает исключениеNullPointerExceptionесли уровень API 19 или ниже.
-
Другие заметные изменения
- Бинарные файлы теперь публикуются через Google Maven.
- Уменьшен размер JAR-файлов
espresso-coreиespresso-web— к встроенным зависимостям теперь применяется ProGuard. - Все файлы
.aarтеперь включают правила ProGuard. - Добавить файлы
proguard_library.cfgк выпущенным артефактам - Интерфейс
Tapperимеет новую версиюsendTap()для реализации
Внешние взносы
- Эспрессо
- Бегун
- Правила
Espresso 2.2.2, Runner/Rules 0.5 (22.02.2016, тихий релиз)
Новые функции
- эспрессо
- Проблема 194253 : Добавить поддержку NavigationView в библиотеку поддержки Android
- Добавлены проверки включенных анимаций и переходов.
- Новый API
ViewMatcher:withResourceName()
Исправления ошибок
- эспрессо
- Выпуск 195331 : espresso-core встраивает pom-файлы guava
- Перенесен подсчет простаивающих ресурсов из espresso-contrib.
- правила
- Проблема 187249 : NPE в
Intents.release()
- Проблема 187249 : NPE в
- бегун
- Проблема 196066: Аргумент
-e log trueвAndroidJUnitRunnerне обходит реальный тест - Ожидание отладчика в
onCreate()бегуна - Все поддерживаемые тестовые аннотации перемещены из платформы в ATSL.
- Удален дамп трассировки стека об отсутствии JSBridge
- Исправлен
AndroidAnnotatedBuilder
- Проблема 196066: Аргумент
Другие заметные изменения
-
ActivityTestRule,UiThreadTestRule,IntentsTestRuleиServiceTestRuleвышли из стадии бета-тестирования. - Добавить файл настроек стиля кода для единообразного форматирования кода
Эспрессо 2.2.1, Runner/Rules 0.4 (15.09.2015)
Новые функции
- правила
- Добавлен новый конструктор
IntentsTestRuleдля полной совместимости сActivityTestRule
- Добавлен новый конструктор
- бегун
- Добавлен специальный случай установки мультидекса для API уровней 15 и ниже.
- Добавлены фильтры исключения для класса и пакета:
- Запуск всех тестов, кроме тестов в определенном классе:
adb shell am instrument -w -e notClass com.android.foo.FooTest - Запуск всех тестов, кроме одного:
adb shell am instrument -w -e notClass com.android.foo.FooTest#testFoo - Запуск всех тестов, кроме определенного пакета:
adb shell am instrument -w -e notPackage com.android.foo.bar
- Запуск всех тестов, кроме тестов в определенном классе:
Внешние взносы
- эспрессо
- 157911 : Добавить сопоставление представлений для типа ввода в объекте
EditText - 157912 : Добавить средство сопоставления представлений для сопоставления текста ошибки в объекте
EditText - 150674 : Добавить поддержку
DrawerActionsдля ящиков с произвольной гравитацией. - 150744 :
DrawerActionsбольше не пропускаетparentListener - 153303 : Сила тяжести, указанная в проверках «открыт или закрыт ящик»
- 157910 : Добавить фабрики действий открытия и закрытия
DrawerLayout
- 157911 : Добавить сопоставление представлений для типа ввода в объекте
Исправления ошибок
- эспрессо
-
ViewActions.closeSoftKeyboard()теперь обеспечивает полное исчезновение экранной клавиатуры. - Исправлена проблема синхронизации с методом
Espresso.pressBack()в Espresso на уровне API 21 и выше. - Исправлена синхронизация анимации закрытия клавиатуры на уровне API 23.
-
- правила
- Исправлено
ServiceTestRuleна уровне API 23,startService()всегда должен вызываться с явнымIntent
- Исправлено
- бегун
- Исправлена некорректная поддержка Gradle
JaCoCo - Исправлена некорректная поддержка тестового шардинга.
- Исправлено несогласованное состояние в тестовом исполнителе после тайм-аутов теста в стиле
JUnit3
- Исправлена некорректная поддержка Gradle
Другие заметные изменения
- Исправления Javadoc и улучшения сообщений об ошибках
- Игнорируйте методы
suite()и не игнорируйте ошибки init при использовании фильтров методов.
Эспрессо 2.2 / АТСЛ 0.3 (09.06.2015)
Новые функции
- эспрессо-веб 2.2
- Новая поддержка
WebView
- Новая поддержка
- эспрессо-ядро 2.2
- Перешел на использование dagger v2
- Перешел на использование hamcrest v1.3
- espresso-contrib 2.2
- Проверки доступности
- Поддержка гравитации
DrawerActions
- правила 0.3
- Правило
DisableOnAndroidDebug
- Правило
- бегун 0.3
- Обновление с JUnit v4.10 до JUnit v4.12
- Перешел на использование Hamcrest v1.3
Исправления ошибок
- Исправлена утечка данных
DrawerActionsParentListener - Ошибка предположения теперь рассматривается как игнорирование теста, а не как провал теста.
- Исправлена утечка экземпляров активности
MonitoringInstrumentationчерезExecutorService - Исправлена ошибка, из-за которой сиротские действия зависали на остановленном этапе.
- Обновите метод
Until.scrollFinished()так, чтобы он возвращал true, если события прокрутки не были сгенерированы. Защититесь от потенциального NPE вUiObject2#setText().
Espresso 2.1, Test Runner/Rules 0.2 и UIAutomator 2.1.0 (21.04.2015)
Критические изменения
- Артефакт исполнителя тестов разделен на два, а имя изменено с
com.android.support.test:testing-support-lib:0.1наcom.android.support.test:runner:0.2иcom.android.support.test:rules:0.2.
Новые функции
- espresso-intents : API-интерфейс, подобный Mockito, который обеспечивает герметичное тестирование интерактивности, позволяя авторам тестов проверять и заглушать исходящие намерения.
-
IntentsTestRule: расширяетActivityTestRule, инициализируется и освобождает Espresso-Intents в функциональных тестах пользовательского интерфейса.
-
- эспрессо-ядро
-
ViewActions: Добавлена возможность запускать глобальные утверждения перед выполнением действий. Это полезно для других фреймворков, основанных на Espresso, для проверки состояния иерархии представлений во время выполнения существующего набора тестов Espresso. - Перегрузка
resIdViewMatchers.withContentDescription()
-
- правила
-
ActivityTestRule: это правило обеспечивает функциональное тестирование одного вида деятельности. - Аннотации
UiThreadRuleиUiThreadTest: это правило позволяет тестовому методу, аннотированномуUiThreadTest, выполняться в основном потоке приложения (или потоке пользовательского интерфейса). -
ServiceTestRule: это правило обеспечивает функциональное тестирование службы.
-
- бегун
-
ApplicationLifecycleCallback: обратный вызов для мониторинга событий жизненного цикла приложения. - Все аргументы бегуна теперь можно также указать в файле манифеста Android с помощью тега
<meta-data>
-
- UIAutomator
-
UiDevice.dumpWindowHierarchy()теперь может приниматьFileилиOutputStream
-
Исправления ошибок
- эспрессо
- Сопоставитель курсоров теперь возвращает
falseесли столбец не найден, поэтому Hamcrest может перейти к следующему курсору. -
NullPointerExceptionсPreferenceMatcherswithTitleбольше не возникает - Отмена регистрации простаивающего ресурса больше не заставляет Espresso думать, что у нас есть занятые простаивающие ресурсы.
- Обновленная версия аннотаций поддержки, используемая Espresso Contrib
- Сопоставитель курсоров теперь возвращает
- бегун
-
AndroidJUnit4теперь пропускает тесты с неверными предположениями
-
- UIAutomator
- Запускайте наблюдателей для предотвращения
StaleObjectException
- Запускайте наблюдателей для предотвращения
Другие заметные изменения
- Добавить более точное сообщение об ошибке, когда невозможно ввести текст с нелатинской строкой.
UIAutomator 2.0 (12.03.2015)
UI Automator теперь основан на Android Instrumentation, и вы можете создавать и запускать тесты с помощью команды ./gradlew connectedCheck .
Espresso версии 2.0, Test Runner 0.1 (выпущено: 19 декабря 2014 г.)
Критические изменения
- Espresso перешёл в новое пространство имён: с
android.support.test.espressoнаandroid.support.test.espresso - Артефакты эспрессо были переименованы
-
espresso-1.1.jarтеперь называетсяespresso-core-release-2.0.jar - Интерфейс
IdlingResourceвынесен в отдельную библиотеку:espresso-idling-resource-release-2.0.jar -
CountingIdlingResourceтеперь находится вespresso-contrib-release-2.0.jar(как и должно быть)
-
- Необязательная зависимость (guava) была удалена из публичного API для поддержки переупаковки зависимости guava и предотвращения конфликтов с DEX (основной источник проблем при разработке). Затронутые методы включают в себя следующие:
-
ViewAssertion.check() -
HumanReadables.getViewHierarchyErrorMessage()
-
Новые функции
- Действия
-
ViewActions-
replaceText() -
openLink() - Проведите пальцем вверх и вниз
-
- эспрессо-contrib
-
RecyclerViewActions: обрабатывает взаимодействия сRecyclerViews -
PickerActions: обрабатывает взаимодействия с элементами выбораDateиTime
-
-
- Матчеры
-
RootMatchers-
isPlatformPopup()
-
-
ViewMatchers-
isJavascriptEnabled() -
withSpinnerText() -
withHint() -
isSelected() -
hasLinks()
-
-
LayoutMatchers: Сопоставители для тестирования макетов, связанных с i18n -
CursorMatchers: коллекция сопоставителей для объектовCursor
-
- Утверждения
-
PositionAssertions, включаяisLeftOf()иisAbove(): коллекцияViewAssertionsдля проверки относительного положения элементов на экране. -
LayoutAssertions: Утверждения для тестирования макета, связанного с i18n
-
- Тестовое приложение: множество новых примеров заданий/тестов
- Другой
-
Espresso.unregisterIdlingResources()иEspresso.getIdlingResources(): обеспечивает дополнительную гибкость для работы сIdlingResources -
ViewInteraction.withFailureHandler(): позволяет переопределить обработчик сбоев изonView() - поддержка
onData()дляAdapterViews, поддерживаемаяCursorAdapters
-
Исправления ошибок
-
ViewMatchers.isDisplayed()соответствует представлениям, которые занимают весь экран, но не менее чем на 90% больше не отображаются. - Вызов действия смахивания
DrawerActions.openDrawer()больше не приводит к возникновениюIdlingResourceTimeoutException
Другие заметные изменения
- Перешел со сборки с помощью Maven на Gradle
- Убраны зависимости Espresso (Guava, Dagger, Hamcrest) для предотвращения конфликтов DEX.
- Изменено для возврата успешного или неудачного результата при регистрации и отмене регистрации простаивающих ресурсов.
- Поддержка Lollipop: поместите
message.recycle()за интерфейсом для учета изменений, связанных с версией. - Изменен целевой уровень SDK на 21 — в основном влияет на тестовое приложение.
Версия 1.1 (Дата выпуска: 08.01.2014)
Эспрессо
- Новые
ViewActionsswipeLeftиswipeRight - Поддержка нескольких окон: расширенная функция, позволяющая выбирать целевое окно, в котором Espresso должен выполнить операцию.
- Улучшения
TypeTextAction: позволяет вводить текст в предварительно сфокусированное представление, что упрощает добавление текста. - Исправлены многочисленные ошибки
Библиотека Espresso Contrib
- Эта новая библиотека содержит функции, которые дополняют Espresso, но не являются частью основной библиотеки.
- Новый
DrawerActionsдля работы сDrawerLayout: имеет зависимость от Android Support Library, поэтому мы размещаем его за пределами базовой библиотеки Espresso.
Образцы тестов
- Эти тесты были перемещены в тот же пакет, что и тестовое приложение.
- Файлы POM Maven были исправлены для удаления дублирующихся зависимостей Guava, поэтому теперь
mvn installдолжна работать.