Эспрессо не ждет завершения анимации.

Я утверждаю некоторые представления, которые будут отображаться после некоторой анимации или медленно загружаться

Пример: кнопка поиска на панели действий задерживается для отображения на панели действий, прежде чем ее отображаемое утверждение не сработает, следует подождать?

И в леденце у нас есть анимация пульсирующего удара, и после этого отображаются некоторые представления, но утверждение не выполняется до завершения анимации, эспрессо должен ждать, пока все представления и анимация не станут бездействующими, верно? Когда я использовал пользовательский ресурс холостого хода и ждал 2 секунды, это сработало, но это не так.

//Its my custom idling resource which wait for 2000 millisec
EspressoSolo.sleep(200);
    RecordingTest.getDefault().customTests(1, 1);

person Shivaraj Patil    schedule 26.05.2015    source источник


Ответы (2)


Большинство ресурсов, которые я нашел (например, выше), ссылаются на мертвую страницу.

Я нашел этот пост в блоге, но он также ссылается на мертвую ссылку выше, но он оказался полезным, потому что содержит пошаговые инструкции о том, как его настроить.

http://product.reverb.com/2015/06/06/disabling-animations-in-espresso-for-android-testing/

У меня были похожие проблемы, потому что у меня есть анимация, которую мне нужно дождаться, прежде чем я смогу нажимать кнопки и тому подобное. Позже я узнал, что Espresso рекомендует отключать анимацию во время тестирования, как указал Александр.

Вы можете прочитать, как добавить его в свои конфигурации запуска, в нижней части сообщения в блоге.

Чтобы запустить задачу перед тестами: в раскрывающемся списке, который показывает, что запускать («приложение», «тесты Android» или «модульный тест»), выберите «Редактировать конфигурации», а затем основную конфигурацию «Тесты Android». Внизу находится поле с надписью «Перед запуском:». Нажмите «+», чтобы развернуть диалоговое окно «Добавить новую конфигурацию», и выберите «Запустить задачу Gradle». Для проекта Gradle выберите свое приложение, затем для «Задачи» введите грантAnimationPermission, который должен выполняться автоматически.

Кроме того, вы можете перейти в «Настройки разработчика» на своем мобильном или виртуальном устройстве и отключить масштаб анимации.

Однако обратите внимание: я обнаружил, что это не отключает мои встроенные анимации, как показано ниже:

new Handler().postDelayed(new Runnable() {
            @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1)
            @Override
            public void run() {
                try {
                    layout_login.animate()
                            .translationY(0)
                            .alpha(1)
                            .setDuration(500)
                            .setInterpolator(new AccelerateDecelerateInterpolator());

                } catch (Exception e) {

                }
            }
        }, 1600);
person dsapalo    schedule 09.11.2015
comment

Я копирую то, что учит нас делать учебник Google:

На вашем устройстве в разделе «Настройки» -> «Параметры разработчика» отключите следующие 3 параметра:

Масштаб анимации окна

Масштаб анимации перехода

Шкала продолжительности анимации

Это отключает анимацию и позволяет запускать ваши тесты.

person Graydyn Young    schedule 30.03.2017