2017-04-12 3 views
1

Ich lasse Espresso-Tests im Travis CI laufen. Wenn ich meine Tests auf meinem Gerät ausführe, deaktiviere ich normalerweise alle meine Animationen, so dass ich Thread.sleep nicht ständig verwenden muss.Wie können Android-Emulatoranimationen in Travis deaktiviert werden?

Aber ich weiß wirklich nicht, wie man das im Travis CI macht, also versagen meine Tests ohne den Thread.sleep. Ich habe über das Internet geschaut ... aber ich habe kein Tutorial darüber gefunden, wie man die Animationen im Emulator deaktiviert

Ich könnte Leerlauf-Ressource in Espresso verwenden, ich weiß. Aber manchmal würde ich es lieber nicht tun.

+0

Was ist mit [dies] (http://stackoverflow.com/a/30044012/1083957)? – azizbekian

+0

Nun, das ist eine gute Option. Vielen Dank! Aber ich suchte direkt im travis.yml nach einem Befehl. Wie auch immer, wenn das die einzige Option ist, das ist die, die ich verwenden werde –

Antwort

4

Wenn Sie @ azizbekian Pfad versuchen, ich schrieb über dieses here, neue Prüfregeln erstellt here und getestet here

Ich bestätige @Testujaca Malpeczka Pfad funktioniert auf Travis-Ci für Android APIs 17-22 wie diskutiert here

Wenn Sie nach einer Lösung für die neuesten Android-APIs und Tools, unfertige here und here

before_script: 
    # Wait for emulator fully-booted and disable animations 
    - android-wait-for-emulator 
    - adb shell settings put global window_animation_scale 0 & 
    - adb shell settings put global transition_animation_scale 0 & 
    - adb shell settings put global animator_duration_scale 0 & 
    - adb shell input keyevent 82 & 

Es funktioniert auch in der Kreis-ci und wahrscheinlich jede kontinuierliche Integration Build-Server suchen, finden broken link here

test: 
    pre: 
    - ... 
    - circle-android wait-for-boot 
    - adb shell input keyevent 82 
    - adb shell settings put global window_animation_scale 0 
    - adb shell settings put global transition_animation_scale 0 
    - adb shell settings put global animator_duration_scale 0 

Meine erweiterten Testregeln funktionieren für Android APIs 15-22, und es gab einen Fehler in Android 23-Emulator.

Ich werde es für spätere Versionen 24+ mit Android-Topeka Probe an einem anderen Tag versuchen, wahrscheinlich funktioniert es.

Jede Hilfe, Verbesserung oder effektive Alternative mit sdkmanager würde sehr geschätzt werden.

+0

Hat nicht funktioniert für mich - 'android.support.test.espresso.PerformException: Fehler beim Ausführen 'einzelner Klick' in der Ansicht 'Animationen oder Übergänge sind auf der aktiviert Zielgerät.' Verwenden Emulator API 22. – aragaer

+0

Ich denke, dass es funktioniert und Ihre Fehlermeldung ist generisch. Wenn Sie eine neue Frage erstellen, werde ich versuchen, Ihnen zu helfen. Wahrscheinlich überlappt der Sperrbildschirm Ihre Aktivität (erklärt in den Links, die ich geteilt habe). – albodelu

+0

Nein, ich habe 8 Testfälle und ich bekomme nur einen Fehler. Ich kann es nicht auf meinem eigenen Computer reproduzieren, nur auf Travis. – aragaer

4

Wenn es möglich Verwendung adb Shell-Befehl:

adb shell settings put global window_animation_scale 0.0 
adb shell settings put global transition_animation_scale 0.0 
adb shell settings put global animator_duration_scale 0.0 

auf jenkins ci getestet

Verwandte Themen