Espresso-test schlägt fehl, nach erfolgreicher klicken und Sperrung für 60 Sekunden

Habe ich versucht, mit Espresso-Test-Frameworks und schrieb einen einfachen test.

Nichts besonderes, nur dieser code:

onView(withId(R.id.login_button_stub)).perform(click());

Test läuft problemlos auf einem Nexus 5 Gerät und Genymotion mit Android 5.0, aber nicht auf der Android-Emulator 4.x, 5.0, Genymotion 2.3, 4.x und LG G2 mit Android 4.x.

Auf alle diese Geräte/Emulatoren/Simulatoren, die Schaltfläche geklickt wird, und seine Aktion ausgeführt (gehen Sie zu einem anderen Bildschirm in meinem Fall). Das problem ist, es blockiert in perform auf einigen Geräten. Diese endet mit einer schönen Ausnahme-nach 60 Sekunden:

android.support.test.espresso.PerformException: Error performing 'single click' on view 'with id: com.vielengames.mock:id/login_button_stub'.
    ...
    Caused by: android.support.test.espresso.AppNotIdleException: Looped for 3544 iterations over 60 SECONDS. The following Idle Conditions failed .
    ...

Beachten Sie, dass es keine Infos darüber, welche Bedingungen gescheitert. Auf der Suche im Espresso-source-code, es sollte eine Komma-getrennte Liste von Fragen.

Hier ist der vollständige code: TestCase.java.

und vollständigen stacktrace:

I/TestRunner android.support.test.espresso.PerformException: Error performing 'single click' on view 'with id: com.vielengames.mock:id/login_button_stub'.
        at android.support.test.espresso.PerformException$Builder.build(PerformException.java:83)
        at android.support.test.espresso.base.DefaultFailureHandler.getUserFriendlyError(DefaultFailureHandler.java:70)
        at android.support.test.espresso.base.DefaultFailureHandler.handle(DefaultFailureHandler.java:53)
        at android.support.test.espresso.ViewInteraction.runSynchronouslyOnUiThread(ViewInteraction.java:185)
        at android.support.test.espresso.ViewInteraction.doPerform(ViewInteraction.java:115)
        at android.support.test.espresso.ViewInteraction.perform(ViewInteraction.java:87)
        at com.vielengames.ui.NotLoggedOnTestCase.testLoggedOnAfterLoginClick(NotLoggedOnTestCase.java:19)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        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 junit.framework.TestCase.runBare(TestCase.java:134)
        at junit.framework.TestResult$1.protect(TestResult.java:115)
        at junit.framework.TestResult.runProtected(TestResult.java:133)
        at android.support.test.internal.runner.junit3.DelegatingTestResult.runProtected(DelegatingTestResult.java:90)
        at junit.framework.TestResult.run(TestResult.java:118)
        at android.support.test.internal.runner.junit3.AndroidTestResult.run(AndroidTestResult.java:49)
        at junit.framework.TestCase.run(TestCase.java:124)
        at android.support.test.internal.runner.junit3.NonLeakyTestSuite$NonLeakyTest.run(NonLeakyTestSuite.java:63)
        at junit.framework.TestSuite.runTest(TestSuite.java:243)
        at junit.framework.TestSuite.run(TestSuite.java:238)
        at android.support.test.internal.runner.junit3.DelegatingTestSuite.run(DelegatingTestSuite.java:103)
        at android.support.test.internal.runner.junit3.AndroidTestSuite.run(AndroidTestSuite.java:63)
        at android.support.test.internal.runner.junit3.JUnit38ClassRunner.run(JUnit38ClassRunner.java:90)
        at org.junit.runners.Suite.runChild(Suite.java:128)
        at org.junit.runners.Suite.runChild(Suite.java:24)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
        at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
        at org.junit.runner.JUnitCore.run(JUnitCore.java:136)
        at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:270)
        at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)
 Caused by: android.support.test.espresso.AppNotIdleException: Looped for 3544 iterations over 60 SECONDS. The following Idle Conditions failed .
        at android.support.test.espresso.IdlingPolicy.handleTimeout(IdlingPolicy.java:61)
        at android.support.test.espresso.base.UiControllerImpl.loopUntil(UiControllerImpl.java:471)
        at android.support.test.espresso.base.UiControllerImpl.loopUntil(UiControllerImpl.java:402)
        at android.support.test.espresso.base.UiControllerImpl.injectMotionEvent(UiControllerImpl.java:226)
        at android.support.test.espresso.action.MotionEvents.sendUp(MotionEvents.java:135)
        at android.support.test.espresso.action.MotionEvents.sendUp(MotionEvents.java:118)
        at android.support.test.espresso.action.Tap.sendSingleTap(Tap.java:135)
        at android.support.test.espresso.action.Tap.access$100(Tap.java:35)
        at android.support.test.espresso.action.Tap$1.sendTap(Tap.java:40)
        at android.support.test.espresso.action.GeneralClickAction.perform(GeneralClickAction.java:98)
        at android.support.test.espresso.ViewInteraction$1.run(ViewInteraction
Schreibe einen Kommentar