Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 成功点击并阻塞60秒后,浓缩咖啡测试失败_Android_Android Espresso - Fatal编程技术网

Android 成功点击并阻塞60秒后,浓缩咖啡测试失败

Android 成功点击并阻塞60秒后,浓缩咖啡测试失败,android,android-espresso,Android,Android Espresso,我尝试过使用Espresso测试框架,并编写了一个简单的测试 没有什么特别的,只有以下代码: onView(withId(R.id.login_button_stub)).perform(click()); 测试在Nexus 5设备和Android 5.0的Genymotion上运行良好,但在Android Emulator 4.x、5.0、Genymotion 2.3、4.x和Android 4.x的LG G2上失败 在所有这些设备/模拟器/模拟器上,单击按钮并执行其操作(在我的例子中,转到

我尝试过使用Espresso测试框架,并编写了一个简单的测试

没有什么特别的,只有以下代码:

onView(withId(R.id.login_button_stub)).perform(click());
测试在Nexus 5设备和Android 5.0的Genymotion上运行良好,但在Android Emulator 4.x、5.0、Genymotion 2.3、4.x和Android 4.x的LG G2上失败

在所有这些设备/模拟器/模拟器上,单击按钮并执行其操作(在我的例子中,转到另一个屏幕)。问题在于它会在某些设备上阻塞
执行
。这在60秒后以一个很好的异常结束:

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 .
    ...
请注意,没有关于哪些条件失败的信息。看看浓缩咖啡的源代码,应该有一个逗号分隔的问题列表

以下是完整代码:

和完整堆栈跟踪:

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

这是我的应用程序代码中的一个bug,
SwipeRefreshLayout
无限期地为自己设置动画。由于,刷新状态甚至没有显示。

非常感谢!这让我发疯;我在以前的片段中运行了一个旋转动画,但从未被清除,因此应用程序没有空闲,浓缩咖啡测试将挂起。事实上,我现在意识到这是一个很棒的特性,因为它迫使开发者在动画和背景动作上保持整洁。非常感谢!!!在我的例子中,AppBarLayout的OffsetChangeListener不断调用,其中它使用动画定制AppBar。我遇到了类似的问题,但在我的例子中,它的按钮上附带了动画进度条,任何关于我的例子的线索都是类似的;由倒计时引起的。