我在Travis CI中运行Espresso测试。当我在我的设备中运行测试时,我通常会禁用所有动画,所以我不必一直使用Thread.sleep。
但我真的不知道如何在Travis CI中执行此操作,因此我的测试在没有Thread.sleep的情况下失败。我查看了互联网...但我没有找到任何关于如何在模拟器中禁用动画的教程
我知道,我可以在Espresso中使用空闲资源。但有些时候我不愿意。
答案 0 :(得分:5)
如果可以使用adb shell命令:
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
在jenkins ci上测试
答案 1 :(得分:5)
如果您尝试使用@ azizbekian的路径,我就写了here,创建了新的测试规则here并对其进行了测试here
我确认@Testujaca Malpeczka路径适用于Android API 17-22的Travis-ci,如here所述
如果您正在寻找最新Android API和工具的解决方案,正在进行中here和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 &
它也适用于Circle-ci以及任何持续集成构建服务器,请参阅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
我的扩展测试规则适用于Android API 15-22,并且Android 23模拟器中存在错误。
我会在另一天使用android-topeka样本为24+以后的版本试用它,可能它有效。
使用sdkmanager
的任何帮助,改进或有效替代方案都将非常受欢迎。