2015-10-12 2 views
5

Keine Ahnung warum Espresso zeitweise keine deutlich sichtbaren Elemente finden kann. Es schlägt fehl, mit:Flaky Espressotests

failed: android.support.test.espresso.NoMatchingViewException: No views in hierarchy found matching: with id: com.justyoyo.staging.debug:id/content_loading_progress_bar 

Es ist freaking frustrierend, da es egal ist, ob ich die Tests auf lokalen physikalischen Geräte renne, AWS Gerät Bauernhof oder auf Genymotion der Emulatoren. Es spielt auch keine Rolle, dass ich eine explizite Wartezeit SystemClock.sleep(5000); hinzufügen, bevor ich überprüfe, ob das Element sichtbar ist. Ich arbeite 2,3 mal hintereinander, dann scheitert es.

Um Ihnen mehr Einblicke zu geben, verwenden wir Dagger, Mortar und wir führen die Tests auf dem UI-Thread aus, da das Ausführen auf separaten nur noch schlimmer war.

+5

Ich habe ein ähnliches Problem mit flockigen Espressotests. Sie passieren manchmal und versagen in anderen Zeiten, und es ist unglaublich frustrierend. Als Notlösung habe ich eine Testregel geschrieben, die fehlgeschlagene Tests ein zweites Mal wiederholt, bevor sie fehlschlagen. – AutonomousApps

+0

Können Sie diesen Code pls teilen? @Autonomous – gorbysbm

+4

@ Gorbysbm, hier gehen Sie: https://gist.github.com/trobalik/b812e2a4d36edcf4157c279b143c8de1 – AutonomousApps

Antwort

-1

Espresso startet Ihre Aktivität, kann aber keine Ansicht mit der ID content_loading_progress_bar finden. Dieses Problem kommt nicht von Espresso, sondern von Ihrem Test.

Stellen Sie sicher, dass Sie die richtige Aktivität korrekt starten. Auch in Bezug auf die AWS Device Farm und Ihre Tests mit Espresso empfehle ich Ihnen, dieser template zu folgen. Aber seien Sie vorsichtig, damit es auf AWS Device Farm, , funktioniert, müssen alle Ihre Testmethoden mit "testXYZ()" beginnen oder die Farm erkennt sie nicht.