Mamy kilka testów interfejsu użytkownika dotyczących naszej funkcjonalności aparatu, a po przejściu z InstrumentationTestRunner
na AndroidJUnitRunner
w ramach naszego przeniesienia do Espresso/JUnit4, nie możemy już dłużej działać istniejące testy wiarygodny ze względu na częste RuntimeException kiedy nazywamy getActivity()
:Istniejące testy Androida UI przestały działać po przejściu na AndroidaJUnitRunner
java.lang.RuntimeException: Could not launch intent Intent { flg=0x14000000 cmp=com.cookbrite.dev/com.cookbrite.ui.ReceiptCaptureActivity (has extras) } within 45 seconds. Perhaps the main thread has not gone idle within a reasonable amount of time? There could be an animation or something constantly repainting the screen. Or the activity is doing network calls on creation? See the threaddump logs. For your reference the last time the event queue was idle before your activity launch request was 1434471981236 and now the last time the queue went idle was: 1434471981236. If these numbers are the same your activity might be hogging the event queue.
at android.support.test.runner.MonitoringInstrumentation.startActivitySync(MonitoringInstrumentation.java:315)
at android.test.InstrumentationTestCase.launchActivityWithIntent(InstrumentationTestCase.java:119)
at android.test.ActivityInstrumentationTestCase2.getActivity(ActivityInstrumentationTestCase2.java:106)
at com.cookbrite.step2_functional.ui.receipt.ReceiptCaptureTest.getActivity(ReceiptCaptureTest.java:43)
Dla lepszej czytelności, to jest komunikat o błędzie na RuntimeException jako cytat:
nie można uruchomić zamiaru Intent {FLG = 0x14000000 cmp = com.cookbrite.dev/com.cookbrite.ui.ReceiptCaptureActivity (ma dodatki)} w ciągu 45 sekund. Być może główny wątek nie został bezczynny w rozsądnym czasie? Może być animacja lub coś, co ciągle zmienia wygląd ekranu. Lub aktywność wykonuje połączeń sieciowych podczas tworzenia? Zobacz dzienniki wątków. Dla Twojej informacji Ostatni raz kolejka zdarzeń była bezczynna przed uruchomieniem działania. żądanie to było 1434471981236, a teraz, gdy ostatnio kolejka była bezczynna, było: 1434471981236. Jeśli te liczby są takie same, Twoja aktywność może przerwać kolejkę zdarzeń.
Nasze obecne testy wykorzystują Robotium. Próba napisania tego samego testu przy użyciu Espresso spowodowała podobny błąd, co prawdopodobnie wynika z ciągłego aktualizowania interfejsu użytkownika przez interfejs aparatu. Jednak nawet z podglądem ustawionym na INVISIBLE
, nadal napotykamy ten problem z Espresso.
Wszelkie pomysły/wskazówki dotyczące rozwiązania problemu (inne niż powrót do wersji InstrumentationTestRunner
)?
czy test robota działa poprawnie, gdy zestaw podglądu jest ustawiony na NIEWIDZIALNE lub PRZEZNACZONE – user2511882
moje testy Robotium wciąż nie działają z tym samym Wyjątkiem RuntimeException, gdy ocena jest ustawiona na NIEWIDZIALNE. – Yenchi
ok .. doświadczyliśmy tego wcześniej ... w naszym przypadku było tak dlatego, że uruchamialiśmy nowe czynności przy każdym kliknięciu przycisku ... iw rezultacie roboitum miałoby konkurować ... musieliśmy zabić wszystkie działania w tearDown .. – user2511882