Архив заметок о выпуске теста

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
  • Правда
    • Новый артефакт! Включает пользовательские объекты истины для уведомлений, намерений, пакетов, парцелей и событий движения.
  • 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
  • Эспрессо-пульт
    • Это совершенно новый артефакт. Мы выделили всю многопроцессную функциональность 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 : Не сообщать о сбоях при неудачной загрузке классов, если пользователь не загружает определенные классы, включив аргумент -e class 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
    • Guava теперь перенесена в другое «внутреннее» пространство имен — если вы случайно используете API Guava через пространства имен Espresso, вы можете столкнуться с поломками.
      • Удалите все ссылки на затененную гуаву ( .core.deps.guava. )
      • Обновите версию вашей библиотеки поддержки до 25.4.0 или выше.

Известные проблемы

  • AndroidTestOrchestrator
    • Аргументы -e numShards и -e shardIndex runner в настоящее время не поддерживаются.
    • Параметризованные тесты в настоящее время не поддерживаются.

Новые функции

  • Бегун
    • InterceptingActivityFactory и SingleActivityFactory — предоставляют возможность тестирования активности в изоляции от внешнего мира путем переопределения таких методов, как startService() и sendBroadcast()
    • Добавить поддержку использования JUnitParams с AndroidJUnitRunner
    • Начать обработку @UiThreadTest на уровне основного средства выполнения тестов и прекратить поддержку @UiThreadTestRule . Это позволяет использовать аннотацию @UiThreadTest непосредственно в методах, аннотированных @Before и @After
    • Аннотация @SdkSupress теперь поддерживает значение maxSdkVersion (ошибка 37067792 )
    • -e classLoader – Предоставляет возможность передавать загрузчики классов с помощью аргументов запуска
    • -e filter – добавить поддержку пользовательских фильтров JUnit, которые можно указать с помощью аргументов запуска.
    • -e runnerBuilder — позволяет разработчикам предоставлять собственные реализации RunnerBuilder , которые могут определять, могут ли они работать с определенным классом и как это сделать.
  • Правила
  • AndroidTestOrchestrator
    • Android Test Orchestrator предлагает новый способ сбора и запуска тестов с акцентом на корректность и изоляцию. Orchestrator — это независимый процесс инструментирования, создающий отдельный процесс запуска инструментирования для каждого теста и собирающий результаты.
      • Сбои приложения приводят к сбою инструментария исполнителя, но не оркестратора, что позволяет продолжить выполнение вашего тестового набора.
      • Требуется установка APK-файла Orchestrator – 'com.android.support.test:orchestrator:1.0.0'
      • Версия 1.0 имеет только интерфейс командной строки; планируется интеграция с Android Studio и Firebase Test Labs.

Исправления ошибок

  • Эспрессо
    • Улучшена синхронизация корневого представления для значительного снижения нестабильности
    • Исправление повреждения IdlingResourceRegistry
    • Лучшая синхронизация с объектами IdlingResource
    • Проблема 37132680 : Espresso не дожидается завершения создания диалогового окна перед выполнением следующего действия.
    • Проблема 37103280 : Espresso должен поставлять потребительские правила ProGuard, чтобы потребителям не требовалось их добавлять
    • Проблема 37094726 : Espresso Intents содержит ненужную метку приложения
    • Проблема 37093953 : Espresso: нет доступной проверки на наличие пустого/нулевого текста ошибки
    • Проблема 37071776 : espresso-core встраивает файлы .pom Guava
    • Выпуск 37062612 : NPE в release()
    • Проблема 37063389 : Guava и espresso-web в качестве зависимостей androidTest не компилируются.
    • Проблема 37070533 : добавление поддержки NavigationView в библиотеку поддержки дизайна Android
  • Бегун
    • Исправлена ​​возможность использования @UiThreadTest в сочетании с @Test(timeout = 123)
    • Исправлен аргумент -e notClass runner
    • Исправлен -e log для поддержки тестовых наборов JUnit3 и JUnit4, а также Parameterized и Enclosed исполнителей.
    • Проблема 37663530 : Дождитесь завершения всех действий перед и после каждого метода тестирования.
    • Проблема 37132680 : Espresso не дожидается завершения создания диалогового окна перед выполнением следующего действия.
    • Проблема 37123213 : @RequiresDevice игнорируется в x86_64 ABI
    • Проблема 37101485 : некоторые аргументы, указанные в манифесте для AndroidJUnitRunner , такие как размер теста, аннотация и отладка, игнорируются.
    • Проблема 37082857 : Выполнение полупараллельного теста Espresso завершается неудачей на статических объектах.
    • Проблема 37063396 : Контекст не инициализирован с помощью ProviderTestCase2 (вызывает NullPointerException )
  • Правила
  • 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()
  • бегун
    • Проблема 196066: Аргумент -e log true в AndroidJUnitRunner не обходит реальный тест
    • Ожидание отладчика в onCreate() бегуна
    • Все поддерживаемые тестовые аннотации перемещены из платформы в ATSL.
    • Удален дамп трассировки стека об отсутствии JSBridge
    • Исправлен AndroidAnnotatedBuilder

Другие заметные изменения

  • 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

Исправления ошибок

  • эспрессо
    • ViewActions.closeSoftKeyboard() теперь обеспечивает полное исчезновение экранной клавиатуры.
    • Исправлена ​​проблема синхронизации с методом Espresso.pressBack() в Espresso на уровне API 21 и выше.
    • Исправлена ​​синхронизация анимации закрытия клавиатуры на уровне API 23.
  • правила
    • Исправлено ServiceTestRule на уровне API 23, startService() всегда должен вызываться с явным Intent
  • бегун
    • Исправлена ​​некорректная поддержка Gradle JaCoCo
    • Исправлена ​​некорректная поддержка тестового шардинга.
    • Исправлено несогласованное состояние в тестовом исполнителе после тайм-аутов теста в стиле JUnit3

Другие заметные изменения

  • Исправления 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

Исправления ошибок

  • Исправлена ​​утечка данных DrawerActions ParentListener
  • Ошибка предположения теперь рассматривается как игнорирование теста, а не как провал теста.
  • Исправлена ​​утечка экземпляров активности 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.
    • Перегрузка resId ViewMatchers.withContentDescription()
  • правила
    • ActivityTestRule : это правило обеспечивает функциональное тестирование одного вида деятельности.
    • Аннотации UiThreadRule и UiThreadTest : это правило позволяет тестовому методу, аннотированному UiThreadTest , выполняться в основном потоке приложения (или потоке пользовательского интерфейса).
    • ServiceTestRule : это правило обеспечивает функциональное тестирование службы.
  • бегун
    • ApplicationLifecycleCallback : обратный вызов для мониторинга событий жизненного цикла приложения.
    • Все аргументы бегуна теперь можно также указать в файле манифеста Android с помощью тега <meta-data>
  • UIAutomator
    • UiDevice.dumpWindowHierarchy() теперь может принимать File или OutputStream

Исправления ошибок

  • эспрессо
    • Сопоставитель курсоров теперь возвращает false если столбец не найден, поэтому Hamcrest может перейти к следующему курсору.
    • NullPointerException с PreferenceMatchers withTitle больше не возникает
    • Отмена регистрации простаивающего ресурса больше не заставляет 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)

Эспрессо

  • Новые ViewActions swipeLeft и swipeRight
  • Поддержка нескольких окон: расширенная функция, позволяющая выбирать целевое окно, в котором Espresso должен выполнить операцию.
  • Улучшения TypeTextAction : позволяет вводить текст в предварительно сфокусированное представление, что упрощает добавление текста.
  • Исправлены многочисленные ошибки

Библиотека Espresso Contrib

  • Эта новая библиотека содержит функции, которые дополняют Espresso, но не являются частью основной библиотеки.
  • Новый DrawerActions для работы с DrawerLayout : имеет зависимость от Android Support Library, поэтому мы размещаем его за пределами базовой библиотеки Espresso.

Образцы тестов

  • Эти тесты были перемещены в тот же пакет, что и тестовое приложение.
  • Файлы POM Maven были исправлены для удаления дублирующихся зависимостей Guava, поэтому теперь mvn install должна работать.