Архив примечаний к тестовому выпуску, Архив примечаний к тестовому выпуску, Архив примечаний к тестовому выпуску

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! Включает удобный для Kotlin API ActivityScenario.launchActivity.
    • Новый API ActivityScenario для запуска действий с настраиваемыми намерениями.
    • Новый API ActivityScenario для получения результата действия.
    • Сделать ActivityScenario закрываемым
  • Эспрессо
    • Измените withResourceNameMatcher и HumanReadables, чтобы они были совместимы с API 28.
    • Обновите описание replaceTextAction, включив в него stringToBeSet.
    • Поддержка эспрессо в режиме паузы лупера Robolectric.
  • Юнит
    • Новый API ActivityScenarioRule для автоматического запуска и закрытия действия при тестовой настройке и удалении.
    • Новый артефакт расширения Kotlin junit-ktx! Включает API ActivityScenarioRule, совместимый с Kotlin.
  • бегун
    • Сделать -e package и -e testFile согласованными в поведении при получении пакетов.
  • Правда
    • Добавление API-интерфейсов bool, посылки и посылкиAsType 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 октября 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
    • Включайте обработку покрытия оркестратора только в том случае, если переданы оба аргумента «покрытие» и «coverageFilePath».
    • Ожидайте отладчика только тогда, когда установлен параметр -debug, но не для вывода списка тестовых случаев ATO. Был добавлен новый флаг оркестратораDebug для отладки самого оркестратора.
  • Основной
    • Новый артефакт! Включает новые API, которые поддерживают как локальные тесты, так и тесты на устройстве для:
      • Получение контекста: ApplicationProvider
      • Управление жизненными циклами действий: ActivityScenario(beta)
      • Разработчики для MotionEvent, PackageInfo
      • Утилита Parceables
  • Правда
    • Новый артефакт! Включает пользовательские темы правды для Notification, Intent, Bundle, Parcelable и MotionEvent.
  • Юнит
    • Новый артефакт! Включает класс запуска JUnit 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 апреля 2018 г.)

  • Эспрессо
    • Критическое изменение API:
      • В выпуске 64062890 наше внимание было обращено на то, что мы использовали Guava необязательно в нашем общедоступном API. Это было ужасное упущение с нашей стороны. В результате в этом выпуске есть критическое изменение общедоступного API для решения этой проблемы. Мы представили уродливую оболочку вокруг дополнительного класса Guava под названием EspressoOptional, которая находится в пространстве имен «android.support.test.espresso.util». Разработчикам, которые использовали просочившийся дополнительный API Guava, необходимо изменить импорт и ссылки, чтобы использовать EspressoOptional во время обновления до этой новой версии. Приносим извинения за возможные неудобства.
    • API-интерфейсы onView() и onData() теперь помечены @CheckReturnValue для предотвращения ошибок.
    • Исправлен POM-файл ядра эспрессо, который не извлекал зависимость «правил», вместо этого POM-намерения эспрессо извлекали его. Это должно стать изменением NoOp для разработчиков, поскольку эспрессо-намерения нельзя использовать без эспрессо-ядра.
    • Проблема 65486414 : в эспрессо отсутствует зависимость от гуавы.
    • Проблема 65576174 : Espresso IdlingResourceRegistry.sync вызывает сбой второго теста.
    • Проблема 65568629 : Espresso.onIdle не использует IdlingRegistry.
    • Проблема 69333598 : эспрессо 3.0.1 несовместим с play-services-auth:11.6.0 в модуле библиотеки Android.
    • Проблема 64062890 : Внутренний дополнительный тип, предоставляемый интерфейсом AdaptorViewProtocol.
    • Проблема 64091847 : Espresso 3.0.0 НЕ должна зависеть от средства запуска тестов.
    • Проблема 73722050 : пакеты espresso-contrib 3.0.2-alpha1 и классы android.arch.{lifecycle/core}
  • Эспрессо-пульт
    • Это совершенно новый артефакт. Мы отделили всю многопроцессную функциональность Espresso от артефакта ядра эспрессо. Это чище и должно значительно уменьшить общий размер espresso-core и количество методов.
  • бегун
    • Усекать трассировку стека, если он слишком велик для транзакции связывания. Поскольку AJUR необходимо сообщать об ошибках обратно в AM через IPC связывателя, нам необходимо убедиться, что мы не превышаем лимит транзакций Binder, который составляет 1 МБ на процесс.
    • Проблема 65828576 : сбой TestRequestBuilder при запуске теста в классе с @Ignore.
    • Проблема 37057596 : мы не обрабатываем сбои в @BeforeClass.
  • Правила
    • Обязательно выпустите ссылку на тестируемую деятельность после изменений жизненного цикла. Во время теста теперь можно напрямую манипулировать действием, используя ссылку, полученную из #getActivity(). Если действие завершено и перезапущено, ссылка, возвращаемая #getActivity(), теперь всегда указывает на текущий экземпляр действия. .
    • Проблема 64389280 : GrantPermissionRule не предоставляет WRITE_EXTERNAL_STORAGE.
    • Проблема 37065965 : ActivityTestRule пропускает активность после изменения ориентации.
    • Проблема 75254050 : ActivityTestRule не обновляет экземпляр Activity во время изменений конфигурации.
    • Проблема 64464625 : Невозможно выполнить работу пользовательского интерфейса в методе Finish() действия.
  • AndroidTestOrchestrator
    • Передайте -e coverage true -e coverageFilePath /sdcard/foo/ flags для создания файлов покрытия в заданном месте (приложение должно иметь разрешение на запись в указанное расположение). Соглашение об именовании файлов покрытия теперь выглядит следующим образом: com.foo.Class#method1.ec . Обратите внимание: это поддерживается только при работе в изолированном режиме. Кроме того, его нельзя использовать вместе с флагом coverageFile AndroidJUnitRunner. Так как сгенерированные файлы покрытия перезаписывают друг друга.
    • Передайте флаг -e clearPackageData если вы хотите, чтобы оркестратор запускал команды pm clear context.getPackageName() и pm clear targetContext.getPackageName() между вызовами тестов. Обратите внимание, что контекстом команды очистки является контекст тестируемого приложения.
    • Исправлено — при запуске пустого теста, т.е. нет @Test внутри цели, результат теста отличается от устаревшего режима.
    • Проблема 72758547 : оркестратор тестирования приводит к тому, что данные о покрытии Jacoco становятся неполными, имеются только данные последнего запуска теста.
    • Проблема 67916042 : Оркестратор тестов Android: выполнение остановлено при сбое процесса из-за OutOfMemory
    • Проблема 77752735 : Оркестратор аварийно завершает работу из-за исключения TransactionTooLargeException.
    • Проблема 77549481 : Оркестратор тестирования должен запускать команду «pmclear» после каждого теста.

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 августа 2017 г.)

  • Эспрессо

    • Добавлен параметр IdlingPolicy для подавления onTimeout() когда к виртуальной машине подключен пошаговый отладчик.
    • Проблемы 64024656 , 64247586 и 64525881. Не сообщайте об ошибках при неудачной загрузке классов, если пользователь не загружает определенные классы, включая аргумент запуска класса -e .
    • Проблема 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 в настоящее время не поддерживаются.
    • Параметризованные тесты в настоящее время не поддерживаются.

Новые возможности

  • Эспрессо
    • Новая поддержка Multiprocess Espresso в API 26 для espresso-core и espresso-web , но не espresso-contrib
    • Новый облегченный API IdlingRegistry
    • Новый API для синхронизации с Executors
    • Новый API для синхронизации с сетевыми запросами и ответами.
      • Новый артефакт maven: com.android.support.test.espresso.idling:idling-net:3.0.0
      • Содержит класс UriIdlingResource
    • Новые сопоставления представлений espresso-core :
    • Новые методы действий просмотра:
      • Улучшено действие просмотра scrollTo() для работы с потомками ListView
      • repeatedlyUntil() — выполняет заданное ViewAction для представления до тех пор, пока представление не будет соответствовать желаемому ViewMatchers
    • Новые методы эспрессо:
      • pressBackUnconditionally() — аналогично pressBack() но не выдает исключение при навигации по эспрессо.
      • noActivity() — устраняет необходимость ожидания действия перед выполнением ViewAction или ViewAssertion
      • onIdle() — зацикливает основной поток до тех пор, пока приложение не перейдет в режим ожидания.
      • onIdle(Callable<T>) — то же, что onIdle() , но принимает дополнительный Callable в качестве параметра, который выполняется после того, как приложение переходит в режим ожидания.
    • webScrollIntoView() – новый атом espresso-web , который позволяет прокручивать внутри WebView
  • бегун
    • 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 предоставляет новый способ сбора и выполнения тестов с упором на правильность и изоляцию. Оркестратор — это независимый процесс инструментирования, который создает один процесс запуска инструментов для каждого теста и собирает результаты.
      • Сбои приложения приводят к отключению инструментов выполнения, но не оркестратора, что позволяет продолжить работу набора тестов.
      • Требуется установка APK-файла оркестратора — '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 : Эспрессо: нет доступной проверки отсутствия или пустого текста ошибки.
    • Проблема 37071776 : espresso-core встраивает файлы .pom Guava.
    • Проблема 37062612 : NPE в release()
    • Проблема 37063389 : использование Guava и espresso-web в качестве зависимостей androidTest не компилируется.
    • Проблема 37070533 : добавление поддержки NavigationView в библиотеку поддержки дизайна Android.
  • бегун
    • Исправлена ​​возможность использования @UiThreadTest в сочетании с @Test(timeout = 123)
    • Исправлен аргумент -e notClass бегуна.
    • Исправлен -e log для поддержки наборов тестов JUnit3 и JUnit4, а также Parameterized и Enclosed бегунов.
    • Проблема 37663530 : дождитесь завершения всех действий до и после каждого метода тестирования.
    • Проблема 37132680 : Espresso не ждет завершения создания диалогового окна перед выполнением следующего действия.
    • Проблема 37123213 : @RequiresDevice игнорируется в ABI x86_64.
    • Проблема 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 февраля 2016 г., тихий выпуск)

Новые возможности

  • эспрессо
    • Проблема 194253 : добавление поддержки NavigationView в библиотеку дизайна поддержки Android.
    • Добавлены проверки включенной анимации и переходов.
    • Новый API ViewMatcher : withResourceName()

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

  • эспрессо
    • Проблема 195331 : espresso-core встраивает pom-файлы гуавы.
    • Перенесен подсчет ресурсов на холостом ходу из 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 сентября 2015 г.)

Новые возможности

  • правила
    • Добавлен новый конструктор IntentsTestRule для полной совместимости с ActivityTestRule
  • бегун
    • Добавлена ​​установка multidex в особом случае для уровней 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() на уровне API 21 и выше.
    • Исправлена ​​синхронизация анимации закрытия клавиатуры на уровне API 23.
  • правила
    • Исправлено ServiceTestRule на уровне API 23, startService() всегда должен вызываться с явным Intent
  • бегун
    • Исправлена ​​сломанная поддержка Gradle JaCoCo
    • Исправлена ​​неработающая поддержка тестового сегментирования.
    • Исправлено несогласованное состояние в средстве выполнения тестов после тайм-аутов тестов в стиле JUnit3

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

  • Исправления Javadoc и улучшения сообщений об ошибках
  • Игнорируйте методы suite() и не игнорируйте ошибки инициализации при использовании фильтров методов.

Эспрессо 2.2 / ATSL 0.3 (09.06.2015)

Новые возможности

  • эспрессо-веб 2.2
    • Новая поддержка WebView
  • эспрессо-ядро 2.2
    • Перешел на использование Dagger v2.
    • Перенесен на использование подколенного сустава v1.3.
  • эспрессо-вклад 2.2
    • Проверки доступности
    • Поддержка гравитации DrawerActions
  • правила 0.3
    • Правило DisableOnAndroidDebug
  • бегун 0.3
    • Обновление с JUnit v4.10 до JUnit v4.12
    • Перенесен на использование Hamcrest v1.3.

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

  • Исправлена ​​утечка ParentListener из DrawerActions
  • Ошибка предположения теперь рассматривается как игнорируемый тест, а не как неудачный тест.
  • Исправлены экземпляры активности MonitoringInstrumentation через ExecutorService
  • Исправлено зависание бесхозных действий на стадии остановки.
  • Обновите Until.scrollFinished() , чтобы он возвращал true, если события прокрутки не были созданы. Защититесь от потенциального NPE в UiObject2#setText() .

Espresso 2.1, Test Runner/Rules 0.2 и UIAutomator 2.1.0 (21 апреля 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 марта 2015 г.)

UI Automator теперь основан на инструментах Android, и вы можете создавать и запускать тесты с помощью команды ./gradlew connectedCheck .

Эспрессо версия 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 (как и всегда должно быть).
  • Необязательное (зависимость гуавы) было удалено из общедоступного API, чтобы поддержать переупаковку зависимости гуавы и избежать коллизий DEX (основной источник проблем при разработке). Затронутые методы включают следующее:
    • ViewAssertion.check()
    • HumanReadables.getViewHierarchyErrorMessage()

Новые возможности

  • Действия
    • ViewActions
      • replaceText()
      • openLink()
      • Проведите пальцем вверх и вниз
    • эспрессо-вклад
      • 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 (Дата выпуска: 8 января 2014 г.)

Эспрессо

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

Библиотека вкладов эспрессо

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

Примеры тестов

  • Эти тесты были перенесены в тот же пакет, что и тестовое приложение.
  • Исправлены POM Maven для удаления дубликатов данных гуавы, поэтому mvn install теперь должна работать.
,

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! Включает удобный для Kotlin API ActivityScenario.launchActivity.
    • Новый API ActivityScenario для запуска действий с настраиваемыми намерениями.
    • Новый API ActivityScenario для получения результата действия.
    • Сделать ActivityScenario закрываемым
  • Эспрессо
    • Измените withResourceNameMatcher и HumanReadables, чтобы они были совместимы с API 28.
    • Обновите описание replaceTextAction, включив в него stringToBeSet.
    • Поддержка эспрессо в режиме паузы лупера Robolectric.
  • Юнит
    • Новый API ActivityScenarioRule для автоматического запуска и закрытия действия при тестовой настройке и удалении.
    • Новый артефакт расширения Kotlin junit-ktx! Включает API ActivityScenarioRule, совместимый с Kotlin.
  • бегун
    • Сделать -e package и -e testFile согласованными в поведении при получении пакетов.
  • Правда
    • Добавление API-интерфейсов bool, посылки и посылкиAsType 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 октября 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
    • Включайте обработку покрытия оркестратора только в том случае, если переданы оба аргумента «покрытие» и «coverageFilePath».
    • Ожидайте отладчика только тогда, когда установлен параметр -debug, но не для вывода списка тестовых случаев ATO. Был добавлен новый флаг оркестратораDebug для отладки самого оркестратора.
  • Основной
    • Новый артефакт! Включает новые API, которые поддерживают как локальные тесты, так и тесты на устройстве для:
      • Получение контекста: ApplicationProvider
      • Управление жизненными циклами действий: ActivityScenario(beta)
      • Разработчики для MotionEvent, PackageInfo
      • Утилита Parceables
  • Правда
    • Новый артефакт! Включает пользовательские темы правды для Notification, Intent, Bundle, Parcelable и MotionEvent.
  • Юнит
    • Новый артефакт! Включает класс запуска JUnit 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 апреля 2018 г.)

  • Эспрессо
    • Критическое изменение API:
      • В выпуске 64062890 наше внимание было обращено на то, что мы использовали Guava необязательно в нашем общедоступном API. Это было ужасное упущение с нашей стороны. В результате в этом выпуске есть критическое изменение общедоступного API для решения этой проблемы. Мы представили уродливую оболочку вокруг дополнительного класса Guava под названием EspressoOptional, которая находится в пространстве имен «android.support.test.espresso.util». Разработчикам, которые использовали просочившийся дополнительный API Guava, необходимо изменить импорт и ссылки, чтобы использовать EspressoOptional во время обновления до этой новой версии. Приносим извинения за возможные неудобства.
    • API-интерфейсы onView() и onData() теперь помечены @CheckReturnValue для предотвращения ошибок.
    • Исправлен POM-файл ядра эспрессо, который не извлекал зависимость «правил», вместо этого POM-намерения эспрессо извлекали его. Это должно стать изменением NoOp для разработчиков, поскольку эспрессо-намерения нельзя использовать без эспрессо-ядра.
    • Проблема 65486414 : в эспрессо отсутствует зависимость от гуавы.
    • Проблема 65576174 : Espresso IdlingResourceRegistry.sync вызывает сбой второго теста.
    • Проблема 65568629 : Espresso.onIdle не использует IdlingRegistry.
    • Проблема 69333598 : эспрессо 3.0.1 несовместим с play-services-auth:11.6.0 в модуле библиотеки Android.
    • Проблема 64062890 : Внутренний дополнительный тип, предоставляемый интерфейсом AdaptorViewProtocol.
    • Проблема 64091847 : Espresso 3.0.0 НЕ должна зависеть от средства запуска тестов.
    • Проблема 73722050 : пакеты espresso-contrib 3.0.2-alpha1 и классы android.arch.{lifecycle/core}
  • Эспрессо-пульт
    • Это совершенно новый артефакт. Мы отделили всю многопроцессную функциональность Espresso от артефакта ядра эспрессо. Это чище и должно значительно уменьшить общий размер espresso-core и количество методов.
  • бегун
    • Усекать трассировку стека, если он слишком велик для транзакции связывания. Поскольку AJUR необходимо сообщать об ошибках обратно в AM через IPC связывателя, нам необходимо убедиться, что мы не превышаем лимит транзакций Binder, который составляет 1 МБ на процесс.
    • Проблема 65828576 : сбой TestRequestBuilder при запуске теста в классе с @Ignore.
    • Проблема 37057596 : мы не обрабатываем сбои в @BeforeClass.
  • Правила
    • Обязательно выпустите ссылку на тестируемую деятельность после изменений жизненного цикла. Во время теста теперь можно напрямую манипулировать действием, используя ссылку, полученную из #getActivity(). Если действие завершено и перезапущено, ссылка, возвращаемая #getActivity(), теперь всегда указывает на текущий экземпляр действия. .
    • Проблема 64389280 : GrantPermissionRule не предоставляет WRITE_EXTERNAL_STORAGE.
    • Проблема 37065965 : ActivityTestRule пропускает активность после изменения ориентации.
    • Проблема 75254050 : ActivityTestRule не обновляет экземпляр Activity во время изменений конфигурации.
    • Проблема 64464625 : Невозможно выполнить работу пользовательского интерфейса в методе Finish() действия.
  • AndroidTestOrchestrator
    • Передайте -e coverage true -e coverageFilePath /sdcard/foo/ flags для создания файлов покрытия в заданном месте (приложение должно иметь разрешение на запись в указанное расположение). Соглашение об именовании файлов покрытия теперь выглядит следующим образом: com.foo.Class#method1.ec . Обратите внимание: это поддерживается только при работе в изолированном режиме. Кроме того, его нельзя использовать вместе с флагом coverageFile AndroidJUnitRunner. Так как сгенерированные файлы покрытия перезаписывают друг друга.
    • Передайте флаг -e clearPackageData если вы хотите, чтобы оркестратор запускал команды pm clear context.getPackageName() и pm clear targetContext.getPackageName() между вызовами тестов. Обратите внимание, что контекстом команды очистки является контекст тестируемого приложения.
    • Исправлено — при запуске пустого теста, т.е. нет @Test внутри цели, результат теста отличается от устаревшего режима.
    • Проблема 72758547 : оркестратор тестирования приводит к тому, что данные о покрытии Jacoco становятся неполными, имеются только данные последнего запуска теста.
    • Проблема 67916042 : Оркестратор тестов Android: выполнение остановлено при сбое процесса из-за OutOfMemory
    • Проблема 77752735 : Оркестратор аварийно завершает работу из-за исключения TransactionTooLargeException.
    • Проблема 77549481 : Оркестратор тестирования должен запускать команду «pmclear» после каждого теста.

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 августа 2017 г.)

  • Эспрессо

    • Добавлен параметр IdlingPolicy для подавления onTimeout() когда к виртуальной машине подключен пошаговый отладчик.
    • Проблемы 64024656 , 64247586 и 64525881. Не сообщайте об ошибках при неудачной загрузке классов, если пользователь не загружает определенные классы, включая аргумент запуска класса -e .
    • Проблема 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 в настоящее время не поддерживаются.
    • Параметризованные тесты в настоящее время не поддерживаются.

Новые возможности

  • Эспрессо
    • Новая поддержка Multiprocess Espresso в API 26 для espresso-core и espresso-web , но не espresso-contrib
    • Новый облегченный API IdlingRegistry
    • Новый API для синхронизации с Executors
    • Новый API для синхронизации с сетевыми запросами и ответами.
      • Новый артефакт maven: com.android.support.test.espresso.idling:idling-net:3.0.0
      • Содержит класс UriIdlingResource
    • Новые сопоставления представлений espresso-core :
    • Новые методы действий просмотра:
      • Улучшено действие просмотра scrollTo() для работы с потомками ListView
      • repeatedlyUntil() — выполняет заданное ViewAction для представления до тех пор, пока представление не будет соответствовать желаемому ViewMatchers
    • Новые методы эспрессо:
      • pressBackUnconditionally() — аналогично pressBack() но не выдает исключение при навигации по эспрессо.
      • noActivity() — устраняет необходимость ожидания действия перед выполнением ViewAction или ViewAssertion
      • onIdle() — зацикливает основной поток до тех пор, пока приложение не перейдет в режим ожидания.
      • onIdle(Callable<T>) — то же, что onIdle() , но принимает дополнительный Callable в качестве параметра, который выполняется после того, как приложение переходит в режим ожидания.
    • webScrollIntoView() – новый атом espresso-web , который позволяет прокручивать внутри WebView
  • бегун
    • 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 предоставляет новый способ сбора и выполнения тестов с упором на правильность и изоляцию. Оркестратор — это независимый процесс инструментирования, который создает один процесс запуска инструментов для каждого теста и собирает результаты.
      • Сбои приложения приводят к отключению инструментов выполнения, но не оркестратора, что позволяет продолжить работу набора тестов.
      • Требуется установка APK-файла оркестратора — '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 : Эспрессо: нет доступной проверки отсутствия или пустого текста ошибки.
    • Проблема 37071776 : espresso-core встраивает файлы .pom Guava.
    • Проблема 37062612 : NPE в release()
    • Проблема 37063389 : использование Guava и espresso-web в качестве зависимостей androidTest не компилируется.
    • Проблема 37070533 : добавление поддержки NavigationView в библиотеку поддержки дизайна Android.
  • бегун
    • Исправлена ​​возможность использования @UiThreadTest в сочетании с @Test(timeout = 123)
    • Исправлен аргумент -e notClass бегуна.
    • Исправлен -e log для поддержки наборов тестов JUnit3 и JUnit4, а также Parameterized и Enclosed бегунов.
    • Проблема 37663530 : дождитесь завершения всех действий до и после каждого метода тестирования.
    • Проблема 37132680 : Espresso не ждет завершения создания диалогового окна перед выполнением следующего действия.
    • Проблема 37123213 : @RequiresDevice игнорируется в ABI x86_64.
    • Проблема 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 февраля 2016 г., тихий выпуск)

Новые возможности

  • эспрессо
    • Проблема 194253 : добавление поддержки NavigationView в библиотеку дизайна поддержки Android.
    • Добавлены проверки включенной анимации и переходов.
    • Новый API ViewMatcher : withResourceName()

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

  • эспрессо
    • Проблема 195331 : espresso-core встраивает pom-файлы гуавы.
    • Перенесен подсчет ресурсов на холостом ходу из 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 сентября 2015 г.)

Новые возможности

  • правила
    • Добавлен новый конструктор IntentsTestRule для полной совместимости с ActivityTestRule
  • бегун
    • Добавлена ​​установка multidex в особом случае для уровней 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() на уровне API 21 и выше.
    • Исправлена ​​синхронизация анимации закрытия клавиатуры на уровне API 23.
  • правила
    • Исправлено ServiceTestRule на уровне API 23, startService() всегда должен вызываться с явным Intent
  • бегун
    • Исправлена ​​сломанная поддержка Gradle JaCoCo
    • Исправлена ​​неработающая поддержка тестового сегментирования.
    • Исправлено несогласованное состояние в средстве выполнения тестов после тайм-аутов тестов в стиле JUnit3

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

  • Исправления Javadoc и улучшения сообщений об ошибках
  • Игнорируйте методы suite() и не игнорируйте ошибки инициализации при использовании фильтров методов.

Эспрессо 2.2 / ATSL 0.3 (09.06.2015)

Новые возможности

  • эспрессо-веб 2.2
    • Новая поддержка WebView
  • эспрессо-ядро 2.2
    • Перешел на использование Dagger v2.
    • Перенесен на использование подколенного сустава v1.3.
  • эспрессо-вклад 2.2
    • Проверки доступности
    • Поддержка гравитации DrawerActions
  • правила 0.3
    • Правило DisableOnAndroidDebug
  • бегун 0.3
    • Обновление с JUnit v4.10 до JUnit v4.12
    • Перенесен на использование Hamcrest v1.3.

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

  • Исправлена ​​утечка ParentListener из DrawerActions
  • Ошибка предположения теперь рассматривается как игнорируемый тест, а не как неудачный тест.
  • Исправлены экземпляры активности MonitoringInstrumentation через ExecutorService
  • Исправлено зависание бесхозных действий на стадии остановки.
  • Обновите Until.scrollFinished() , чтобы он возвращал true, если события прокрутки не были созданы. Защититесь от потенциального NPE в UiObject2#setText() .

Espresso 2.1, Test Runner/Rules 0.2 и UIAutomator 2.1.0 (21 апреля 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 марта 2015 г.)

UI Automator теперь основан на инструментах Android, и вы можете создавать и запускать тесты с помощью команды ./gradlew connectedCheck .

Эспрессо версия 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 (как и всегда должно быть).
  • Необязательное (зависимость гуавы) было удалено из общедоступного API, чтобы поддержать переупаковку зависимости гуавы и избежать коллизий DEX (основной источник проблем при разработке). Затронутые методы включают следующее:
    • ViewAssertion.check()
    • HumanReadables.getViewHierarchyErrorMessage()

Новые возможности

  • Действия
    • ViewActions
      • replaceText()
      • openLink()
      • Проведите пальцем вверх и вниз
    • эспрессо-вклад
      • 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 (Дата выпуска: 8 января 2014 г.)

Эспрессо

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

Библиотека вкладов эспрессо

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

Примеры тестов

  • Эти тесты были перенесены в тот же пакет, что и тестовое приложение.
  • Исправлены POM Maven для удаления дубликатов данных гуавы, поэтому mvn install теперь должна работать.
,

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! Включает удобный для Kotlin API ActivityScenario.launchActivity.
    • Новый API ActivityScenario для запуска действий с настраиваемыми намерениями.
    • Новый API ActivityScenario для получения результата действия.
    • Сделать ActivityScenario закрываемым
  • Эспрессо
    • Измените withResourceNameMatcher и HumanReadables, чтобы они были совместимы с API 28.
    • Обновите описание replaceTextAction, включив в него stringToBeSet.
    • Поддержка эспрессо в режиме паузы лупера Robolectric.
  • Юнит
    • Новый API ActivityScenarioRule для автоматического запуска и закрытия действия при тестовой настройке и удалении.
    • Новый артефакт расширения Kotlin junit-ktx! Включает API ActivityScenarioRule, совместимый с Kotlin.
  • бегун
    • Сделать -e package и -e testFile согласованными в поведении при получении пакетов.
  • Правда
    • Добавление API-интерфейсов bool, посылки и посылкиAsType 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 октября 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
    • Включайте обработку покрытия оркестратора только в том случае, если переданы оба аргумента «покрытие» и «coverageFilePath».
    • Ожидайте отладчика только тогда, когда установлен параметр -debug, но не для вывода списка тестовых случаев ATO. Был добавлен новый флаг оркестратораDebug для отладки самого оркестратора.
  • Основной
    • Новый артефакт! Включает новые API, которые поддерживают как локальные тесты, так и тесты на устройстве для:
      • Получение контекста: ApplicationProvider
      • Управление жизненными циклами действий: ActivityScenario(beta)
      • Разработчики для MotionEvent, PackageInfo
      • Утилита Parceables
  • Правда
    • Новый артефакт! Включает пользовательские темы правды для Notification, Intent, Bundle, Parcelable и MotionEvent.
  • Юнит
    • Новый артефакт! Включает класс запуска JUnit 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 апреля 2018 г.)

  • Эспрессо
    • Критическое изменение API:
      • В выпуске 64062890 наше внимание было обращено на то, что мы использовали Guava необязательно в нашем общедоступном API. Это было ужасное упущение с нашей стороны. В результате в этом выпуске есть критическое изменение общедоступного API для решения этой проблемы. Мы представили уродливую оболочку вокруг дополнительного класса Guava под названием EspressoOptional, которая находится в пространстве имен «android.support.test.espresso.util». Разработчикам, которые использовали просочившийся дополнительный API Guava, необходимо изменить импорт и ссылки, чтобы использовать EspressoOptional во время обновления до этой новой версии. Приносим извинения за возможные неудобства.
    • API-интерфейсы onView() и onData() теперь помечены @CheckReturnValue для предотвращения ошибок.
    • Исправлен POM-файл ядра эспрессо, который не извлекал зависимость «правил», вместо этого POM-намерения эспрессо извлекали его. Это должно стать изменением NoOp для разработчиков, поскольку эспрессо-намерения нельзя использовать без эспрессо-ядра.
    • Проблема 65486414 : в эспрессо отсутствует зависимость от гуавы.
    • Проблема 65576174 : Espresso IdlingResourceRegistry.sync вызывает сбой второго теста.
    • Проблема 65568629 : Espresso.onIdle не использует IdlingRegistry.
    • Проблема 69333598 : эспрессо 3.0.1 несовместим с play-services-auth:11.6.0 в модуле библиотеки Android.
    • Проблема 64062890 : Внутренний дополнительный тип, предоставляемый интерфейсом AdaptorViewProtocol.
    • Проблема 64091847 : Espresso 3.0.0 НЕ должна зависеть от средства запуска тестов.
    • Проблема 73722050 : пакеты espresso-contrib 3.0.2-alpha1 и классы android.arch.{lifecycle/core}
  • Эспрессо-пульт
    • Это совершенно новый артефакт. Мы отделили всю многопроцессную функциональность Espresso от артефакта ядра эспрессо. Это чище и должно значительно уменьшить общий размер espresso-core и количество методов.
  • бегун
    • Усекать трассировку стека, если он слишком велик для транзакции связывания. Поскольку AJUR необходимо сообщать об ошибках обратно в AM через IPC связывателя, нам необходимо убедиться, что мы не превышаем лимит транзакций Binder, который составляет 1 МБ на процесс.
    • Проблема 65828576 : сбой TestRequestBuilder при запуске теста в классе с @Ignore.
    • Проблема 37057596 : мы не обрабатываем сбои в @BeforeClass.
  • Правила
    • Обязательно выпустите ссылку на тестируемую деятельность после изменений жизненного цикла. Во время теста теперь можно напрямую манипулировать действием, используя ссылку, полученную из #getActivity(). Если действие завершено и перезапущено, ссылка, возвращаемая #getActivity(), теперь всегда указывает на текущий экземпляр действия. .
    • Проблема 64389280 : GrantPermissionRule не предоставляет WRITE_EXTERNAL_STORAGE.
    • Проблема 37065965 : ActivityTestRule пропускает активность после изменения ориентации.
    • Проблема 75254050 : ActivityTestRule не обновляет экземпляр Activity во время изменений конфигурации.
    • Проблема 64464625 : Невозможно выполнить работу пользовательского интерфейса в методе Finish() действия.
  • AndroidTestOrchestrator
    • Передайте -e coverage true -e coverageFilePath /sdcard/foo/ flags для создания файлов покрытия в заданном месте (приложение должно иметь разрешение на запись в указанное расположение). Соглашение об именовании файлов покрытия теперь выглядит следующим образом: com.foo.Class#method1.ec . Обратите внимание: это поддерживается только при работе в изолированном режиме. Кроме того, его нельзя использовать вместе с флагом coverageFile AndroidJUnitRunner. Так как сгенерированные файлы покрытия перезаписывают друг друга.
    • Передайте флаг -e clearPackageData если вы хотите, чтобы оркестратор запускал команды pm clear context.getPackageName() и pm clear targetContext.getPackageName() между вызовами тестов. Обратите внимание, что контекстом команды очистки является контекст тестируемого приложения.
    • Исправлено — при запуске пустого теста, т.е. нет @Test внутри цели, результат теста отличается от устаревшего режима.
    • Проблема 72758547 : оркестратор тестирования приводит к тому, что данные о покрытии Jacoco становятся неполными, имеются только данные последнего запуска теста.
    • Проблема 67916042 : Оркестратор тестов Android: выполнение остановлено при сбое процесса из-за OutOfMemory
    • Проблема 77752735 : Оркестратор аварийно завершает работу из-за исключения TransactionTooLargeException.
    • Проблема 77549481 : Оркестратор тестирования должен запускать команду «pmclear» после каждого теста.

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 августа 2017 г.)

  • Эспрессо

    • Добавлен параметр IdlingPolicy для подавления onTimeout() когда к виртуальной машине подключен пошаговый отладчик.
    • Проблемы 64024656 , 64247586 и 64525881. Не сообщайте об ошибках при неудачной загрузке классов, если пользователь не загружает определенные классы, включая аргумент запуска класса -e .
    • Проблема 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 в настоящее время не поддерживаются.
    • Параметризованные тесты в настоящее время не поддерживаются.

Новые возможности

  • Эспрессо
    • Новая поддержка Multiprocess Espresso в API 26 для espresso-core и espresso-web , но не espresso-contrib
    • Новый облегченный API IdlingRegistry
    • Новый API для синхронизации с Executors
    • Новый API для синхронизации с сетевыми запросами и ответами.
      • Новый артефакт maven: com.android.support.test.espresso.idling:idling-net:3.0.0
      • Содержит класс UriIdlingResource
    • Новые сопоставления представлений espresso-core :
    • Новые методы действий просмотра:
      • Улучшено действие просмотра scrollTo() для работы с потомками ListView
      • repeatedlyUntil() — выполняет заданное ViewAction для представления до тех пор, пока представление не будет соответствовать желаемому ViewMatchers
    • Новые методы эспрессо:
      • pressBackUnconditionally() — аналогично pressBack() но не выдает исключение при навигации по эспрессо.
      • noActivity() — устраняет необходимость ожидания действия перед выполнением ViewAction или ViewAssertion
      • onIdle() — зацикливает основной поток до тех пор, пока приложение не перейдет в режим ожидания.
      • onIdle(Callable<T>) — то же, что onIdle() , но принимает дополнительный Callable в качестве параметра, который выполняется после того, как приложение переходит в режим ожидания.
    • webScrollIntoView() – новый атом espresso-web , который позволяет прокручивать внутри WebView
  • бегун
    • 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 предоставляет новый способ сбора и выполнения тестов с упором на правильность и изоляцию. Оркестратор — это независимый процесс инструментирования, который создает один процесс запуска инструментов для каждого теста и собирает результаты.
      • Сбои приложения приводят к отключению инструментов выполнения, но не оркестратора, что позволяет продолжить работу набора тестов.
      • Требуется установка APK-файла оркестратора — '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 : Эспрессо: нет доступной проверки отсутствия или пустого текста ошибки.
    • Проблема 37071776 : espresso-core встраивает файлы .pom Guava.
    • Проблема 37062612 : NPE в release()
    • Проблема 37063389 : использование Guava и espresso-web в качестве зависимостей androidTest не компилируется.
    • Проблема 37070533 : добавление поддержки NavigationView в библиотеку поддержки дизайна Android.
  • бегун
    • Исправлена ​​возможность использования @UiThreadTest в сочетании с @Test(timeout = 123)
    • Исправлен аргумент -e notClass бегуна.
    • Исправлен -e log для поддержки наборов тестов JUnit3 и JUnit4, а также Parameterized и Enclosed бегунов.
    • Проблема 37663530 : дождитесь завершения всех действий до и после каждого метода тестирования.
    • Проблема 37132680 : Espresso не ждет завершения создания диалогового окна перед выполнением следующего действия.
    • Проблема 37123213 : @RequiresDevice игнорируется в ABI x86_64.
    • Проблема 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 февраля 2016 г., тихий выпуск)

Новые возможности

  • эспрессо
    • Проблема 194253 : добавление поддержки NavigationView в библиотеку дизайна поддержки Android.
    • Добавлены проверки включенной анимации и переходов.
    • Новый API ViewMatcher : withResourceName()

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

  • эспрессо
    • Проблема 195331 : espresso-core встраивает pom-файлы гуавы.
    • Перенесен подсчет ресурсов на холостом ходу из 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 сентября 2015 г.)

Новые возможности

  • правила
    • Добавлен новый конструктор IntentsTestRule для полной совместимости с ActivityTestRule
  • бегун
    • Добавлена ​​установка multidex в особом случае для уровней 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() на уровне API 21 и выше.
    • Исправлена ​​синхронизация анимации закрытия клавиатуры на уровне API 23.
  • правила
    • Исправлено ServiceTestRule на уровне API 23, startService() всегда должен вызываться с явным Intent
  • бегун
    • Исправлена ​​сломанная поддержка Gradle JaCoCo
    • Исправлена ​​неработающая поддержка тестового сегментирования.
    • Исправлено несогласованное состояние в средстве выполнения тестов после тайм-аутов тестов в стиле JUnit3

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

  • Исправления Javadoc и улучшения сообщений об ошибках
  • Игнорируйте методы suite() и не игнорируйте ошибки инициализации при использовании фильтров методов.

Эспрессо 2.2 / ATSL 0.3 (09.06.2015)

Новые возможности

  • эспрессо-веб 2.2
    • Новая поддержка WebView
  • эспрессо-ядро 2.2
    • Перешел на использование Dagger v2.
    • Перенесен на использование подколенного сустава v1.3.
  • эспрессо-вклад 2.2
    • Проверки доступности
    • Поддержка гравитации DrawerActions
  • правила 0.3
    • Правило DisableOnAndroidDebug
  • бегун 0.3
    • Обновление с JUnit v4.10 до JUnit v4.12
    • Перенесен на использование Hamcrest v1.3.

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

  • Исправлена ​​утечка ParentListener из DrawerActions
  • Ошибка предположения теперь рассматривается как игнорируемый тест, а не как неудачный тест.
  • Исправлены экземпляры активности MonitoringInstrumentation через ExecutorService
  • Исправлено зависание бесхозных действий на стадии остановки.
  • Обновите Until.scrollFinished() , чтобы он возвращал true, если события прокрутки не были созданы. Защититесь от потенциального NPE в UiObject2#setText() .

Espresso 2.1, Test Runner/Rules 0.2 и UIAutomator 2.1.0 (21 апреля 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 марта 2015 г.)

UI Automator теперь основан на инструментах Android, и вы можете создавать и запускать тесты с помощью команды ./gradlew connectedCheck .

Эспрессо версия 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 (как и всегда должно быть).
  • Необязательное (зависимость гуавы) было удалено из общедоступного API, чтобы поддержать переупаковку зависимости гуавы и избежать коллизий DEX (основной источник проблем при разработке). Затронутые методы включают следующее:
    • ViewAssertion.check()
    • HumanReadables.getViewHierarchyErrorMessage()

Новые возможности

  • Действия
    • ViewActions
      • replaceText()
      • openLink()
      • Проведите пальцем вверх и вниз
    • эспрессо-вклад
      • 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 (Дата выпуска: 8 января 2014 г.)

Эспрессо

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

Библиотека вкладов эспрессо

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

Примеры тестов

  • Эти тесты были перенесены в тот же пакет, что и тестовое приложение.
  • Исправлены POM Maven для удаления дубликатов данных гуавы, поэтому mvn install теперь должна работать.