我正在寫濃縮咖啡測試。下面是測試案例無法在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上搜索類似的線程,但沒有爲我工作。