Espresso Test зависает, когда включена опция Use Host GPU

У меня есть серия тестов Espresso, которые проверяют слайд-меню. Большинство тестов завершаются неудачей, когда включен параметр «Использовать хост-графический процессор», но не когда он отключен. Несмотря на то, что я отключил анимацию, я думаю, что где-то пропустил какой-то параметр, потому что я все еще вижу, как окно открывается. Я тестирую Android 4.4.2 и использую HAXM. Почему этот тест не проходит?

Вот один пример теста (все они имеют одинаковую структуру):

@SuppressWarnings("unchecked")
public void testClickOnItemDisplaysMyFragment() {
    openDrawer(DRAWER);
    onView(withId(DRAWER)).check(matches(isOpen()));
    onView(allOf(withId(DRAWER_ITEM), withText(MY_ITEM))).perform(click());
    onView(withId(DRAWER)).check(matches(isClosed()));

    Fragment fragment = fragmentManager.findFragmentById(FRAGMENT_LAYOUT);
    assertThat(fragment, is(notNullValue()));
    assertThat(fragment, is(instanceOf(MyFragment.class)));
    onView(withId(fragment.getId())).check(matches(isDisplayed()));
}

Если я запускаю свой эмулятор без флажка «Использовать хост-графический процессор», тесты проходят нормально. Если включен параметр «Использовать хост-графический процессор», первый тест или около того проходит успешно, а остальные терпят неудачу с ошибкой:

com.google.android.apps.common.testing.ui.espresso.IdlingResourceTimeoutException: Wait for [IdlingDrawerListener] to become idle timed out
at dalvik.system.VMStack.getThreadStackTrace(Native Method)
at java.lang.Thread.getStackTrace(Thread.java:579)
at com.google.android.apps.common.testing.ui.espresso.base.DefaultFailureHandler.getUserFriendlyError(DefaultFailureHandler.java:69)
at com.google.android.apps.common.testing.ui.espresso.base.DefaultFailureHandler.handle(DefaultFailureHandler.java:40)
at com.google.android.apps.common.testing.ui.espresso.ViewInteraction.runSynchronouslyOnUiThread(ViewInteraction.java:159)
at com.google.android.apps.common.testing.ui.espresso.ViewInteraction.check(ViewInteraction.java:133)
at com.example.MainActivityTest.testClickOnItemDisplaysMyFragment(MainActivityTest.java:152)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:192)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)
at com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner.onStart(GoogleInstrumentationTestRunner.java:167)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)

Я попытался отключить анимацию в эмуляторе, как описано здесь: https://code.google.com/p/android-test-kit/wiki/Espresso#Getting_Started , но я все еще вижу, как ящик открывается и закрывается.


person Brittany    schedule 15.04.2014    source источник
comment
это происходит и со мной, но только на компьютере с Windows - на OSX он отлично работает с ускорением графического процессора.   -  person Axarydax    schedule 02.05.2014
comment
Вы решили это?   -  person Jared Burrows    schedule 11.11.2016


Ответы (1)


Это известная ошибка: https://code.google.com/p/android-test-kit/issues/detail?id=64

person Daniel Lubarov    schedule 15.08.2014