Android Testanmerkungen mit Robotium

8

Ich baue gerade eine App in Android und benutze Robotium, um Funktionstests durchzuführen (Übrigens, benutze Robotium nicht auf etwas weniger als Android 1.6, es ist viel zu fehlerhaft).

Einige dieser Tests haben eine zufällige Tendenz zum Scheitern, hauptsächlich wenn ein Textfeld fehlt, oder wenn das Timing fehlt und kein Text gelesen wird. Ich versuche, die @FlakyTest -Anmerkung zu verwenden, sodass sie zwei oder drei Mal ausgeführt werden, bevor ein fehlgeschlagener Testfehler ausgegeben wird. Die Annotation funktioniert jedoch nicht, die Tests werden nach einem Fehler nicht erneut ausgeführt.

Hier ist, wie ich die Anmerkung verwende:

%Vor%

Dann führe ich es von der Kommandozeile aus:

  

adb-Shell ist ein Instrument -w com.jayway.test / android.test.InstrumentationTestRunner

Weder Eclipse noch die Ausführung der Tests in der Befehlszeile berücksichtigt die flockige Testannotation. Sieht jemand einen Fehler bei der Anwendung von @FlakyTest ?

    
andreweskeclarke 22.10.2010, 20:26
quelle

4 Antworten

3

Ich sehe kein Problem mit der Verwendung der Annotation @FlakyTest .

Ich habe einen schnellen Testfall zusammengestellt, um @FlakyTest und Robotium (v2.2) zu testen:

%Vor%

LogCat zeigte die folgenden Nachrichten:

%Vor%

Also wurde die @FlakyTest Annotation definitiv aufgerufen. Der (endgültige) Fehler des Tests wurde gezeigt als:

%Vor%

Und die Nachricht "Shouldn't make it here" wurde nie protokolliert.

Soweit ich sehen kann, gibt es kein Problem damit, wie Sie Ihre Annotation oder irgendwelche Probleme mit @FlakyTest und Robotium, v2.2 sowieso, deklariert haben.

Vielleicht gibt es ein Problem mit einem anderen Teil Ihres Testcodes?

    
Louth 27.02.2011 02:48
quelle
3

Im Allgemeinen müssen Sie beim Schreiben von Tests für Android (mit oder ohne Robotium) viel vorsichtiger sein. Du kannst nicht einfach sagen "ist das sichtbar". Sie müssen alles in einen Wartezyklus einreihen, also sagen: "Warten Sie, bis dies sichtbar ist". Dies ist besonders problematisch, wenn man in den Emulatoren läuft, denn manchmal dauert es lange ohne guten Grund. Ohne die Wartezyklen haben Sie nie einen konsistenten Lauf. Wir haben ein paar hundert Tests und wir mussten nie die FlakyTest Annotation verwenden.

    
dmon 15.04.2012 17:19
quelle
0

Robotium fehlt ein Textfeld, oder Timing out, nicht Text lesen bedeutet Wir müssen klar überprüfen, ob der Text oder irgendwelche anderen auf dem Bildschirm vorhandenen Aktionen nur die Aktionen wie

ausführen müssen %Vor%

Ähnlich wie bei Komponenten wie button oder anderen können wir dies durch obige Logik erreichen.

    
VenSan 05.05.2014 09:52
quelle
-3

Fügen Sie dies Ihrem Code hinzu:

%Vor%     
Sudhakar Reddy 15.04.2012 12:56
quelle

Tags und Links