Wir verwenden Calabash-Android für unsere Funktionstests hier und wir erleben seltsame Verhaltensweisen. Wir haben einige einfache Szenario wie:Calabash Android zufällige Fehler wegen der Elemente nicht gefunden
When I skip the tutorial
Then I must land on my 'fancy' screen
Dieses Szenario die meiste Zeit erfolgreich zu sein, aber manchmal (etwa 10-15% der Zeit) 2 Ausfälle sind möglich. Der erste ist, weil das Element von von calabash-android nicht gefunden wurde (es ist einfach eine Schaltfläche mit der ID button_ok
). Bei der Überprüfung des Screenshots sehen wir das Element, das ziemlich seltsam ist. Ich vermutete die Animation des Elements, also habe ich eine post_timeout
hatte, wie folgt aus:
tap_when_element_exists("* id:'button_ok'", :post_timeout => 2)
aber nichts geändert.
Der zweite mögliche Fehler ist, wenn der Schritt When I skip the tutorial
erfolgreich übergeben wird, aber der nächste Schritt, wo wir überprüfen, dass wir auf der richtigen Seite sind, scheitert, weil die Seite nicht geändert hat ... Auf dem Screenshot von Calabash genommen sind wir tatsächlich auf der Seite des Tutorials, nicht auf dem nächsten wie erwartet. Wie ist es möglich, dass der Schritt, in dem wir die Seite wechseln, erfolgreich ist?
Hat schon jemand diese Art von zufälligen Ausfällen konfrontiert?
(Sorry für schlechte Englisch nicht meine Muttersprache :()
Kannst du die Kalebassenprotokolle posten, hilft das dabei, das Problem zu verstehen. BTW, Kalebasse protokolliert den fehlgeschlagenen Schritt. – danypata
Nun leider habe ich nicht viele Protokolle zu zeigen, wenn der Schritt 'Wenn ich das Tutorial überspringe 'fehlgeschlagen ist, weil ein Element nicht gefunden wird und ich bekomme diesen Fehler' Timeout wartet auf Elemente: * id: 'button_ok '(Calabash :: Android :: WaitHelpers :: WaitError) 'aber auf dem Screenshot ist das Element vorhanden und die meiste Zeit ist es gefunden. Wenn der Schritt 'Dann muss ich auf meinem 'ausgefallenen' Bildschirm landen, fehlgeschlagen ist, habe ich den gleichen Fehler (ein Timeout wartet auf ein anderes Element), aber in diesem Fall ist es logisch, da das Element nicht angezeigt wird, da die Seite nicht geändert wurde in 'Wenn ich das Tutorial überspringe '. – Myx