我正在写浓缩咖啡测试。下面是测试案例无法在45秒内启动意图。也许主线程在合理的时间内没有闲置?
晶圆厂的OnClick,启动应用QuizActivity。
让我向你解释一点关于我的应用程序。
所以应用程序的要求是 -
- 有资产的文件夹JSON文件
- 我必须分析它,并把数据存储在数据库
- 在主要活动从数据库中加载这些数据转化为recyclerview 。还有的Fab按钮,在点击它的应用程序传递数据的随机列表(这是我在recyclerview已加载)到QuizActivity
这是我如何做编码 -
- 在MainActivity的onCreate()使用AsyncTask解析数据并将数据插入数据库一次。
- 一旦数据可用,通过AsyncTaskLoader将其加载到recyclerview中
- 在Fab上设置Onclick监听器。并将所需数据传递给QuizActivity。
下面是我的测试
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
/* @Rule
public IntentsTestRule<MainActivity> intentsTestRule =
new IntentsTestRule<MainActivity>(MainActivity.class);
*/
@Rule
public ActivityTestRule<MainActivity> intentsTestRule =
new ActivityTestRule<MainActivity>(MainActivity.class,false,true);
@Test
public void fabTest(){
onView(withId(R.id.fab)).perform(click());
//Check if the text_question textview is displayed
onView(withId(R.id.text_question)).check(matches(isDisplayed()));
}
/* @Test
public void clickFloatingActionButton() {
onView(withId(R.id.fab))
.perform(click());
intended(hasComponent(new ComponentName(getTargetContext(), QuizActivity.class)));
}*/
}
我的办法是 -
- 查找的Fab
- 执行单击
- 检查显示text_question TextView的。注意这个textview是在QuizActivity上。
后,我跑我得到了测试
了java.lang.RuntimeException:无法启动意图意图{ 行为= android.intent.action.MAIN FLG = 0x14000000 CMP = my_package_name/.MainActivity}在45秒内。主线程可能在合理的时间内没有闲置? 有可能是一个动画或不断重新绘制 屏幕。或者该活动正在创建网络电话?请参阅 线程转储日志。为了便于参考,最后一次事件队列为 ,在您的活动启动请求为1505287862579并且现在为 上次队列空闲时为空闲:1505287862579.如果这些数字是 ,则您的活动可能占用事件队列。
PS - 我已经关闭了所有的动画。代码中没有进度条。
而且更一个音符,如果我注释掉的AsyncTask,AsyncTaskLoader中的onCreate RecyclerView部分()方法,那么测试在流逝。
我怀疑它可能是由于后台任务造成的。
任何人都面临类似的问题?如果您知道解决方案,请告诉我。我挣扎了两天。我在stackoverflow上搜索类似的线程,但没有为我工作。