Closed3

Android Emulator上のテストで、アニメーションによりタップ可能タイミングが遅くなり、UIテストがコケる

ころむにーころむにー

https://developer.android.com/training/testing/espresso/setup?hl=ja#set-up-environment

テストが不安定になるのを避けるため、使用する仮想デバイスまたは物理デバイスでシステム アニメーションをオフにすることを強くおすすめします。デバイスの [設定] > [開発者向けオプション] で、次の 3 つの設定を無効にします。

  • ウィンドウ アニメスケール
  • トランジション アニメスケール
  • Animator 再生時間スケール

上記をもとに端末のアニメーション関連の開発者オプションを無効にした場合、アプリ起動時のActivity表示・非表示などはアニメーションオフになるが、アプリ内の画面遷移などのアニメーションはオフにならない。

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
ころむにーころむにー

追加でGradleに animationsDisabled = true を追加することでアプリ内の画面遷移などのアニメーションもオフになる。

app/build.bradle
android {
    testOptions {
+        animationsDisabled = true
    }
}
ころむにーころむにー

ViewPager2 のページ切り替えのアニメーションは、smoothScroll = false とすることで無効化できる。
端末の開発者設定やGradleのオプションでアニメーション無効化してもここには効かないようなので、コード内でテスト時は false とするみたいな分岐が必要そう

https://developer.android.com/reference/androidx/viewpager2/widget/ViewPager2#setCurrentItem(int,boolean)

このスクラップは2024/08/12にクローズされました