15

Espresso テストを実行しているときに、コードを介してアニメーションを無効にすることができた人はいますか? 私はこのウェブページの指示に従おうとしています(ここからリンクされています):
https://code.google.com/p/android-test-kit/wiki/DisablingAnimations

残念ながら、このアクセス許可エラーが引き続き表示されるため、機能していないようです。

04-27 15:48:28.694      303-342/system_process W/PackageManager﹕ Not granting permission android.permission.SET_ANIMATION_SCALE to package com.cookbrite.dev (protectionLevel=50 flags=0x18be46)

デバイス/エミュレーターの再構成を避けたいと本当に思っていました。私たちは頻繁にローカルで個別のテストを実行していますが、設定を何度も切り替えなければならないのは面倒です。

これが機能しないと不平を言っている他の開発者がいることに気付きました

4

4 に答える 4

24

アニメーションの種類ごとに次の 3 つのコマンドを実行していますが、うまく機能しています。

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

詳細はこちら - UI テストの自動化のために Android エミュレーターを準備します。

于 2017-01-14T19:40:42.683 に答える
10

私はついにこれを機能させました。必要な手順をリストした Gist を次に示します

私が見逃していた重要なステップは、実行adbして許可を与えることでした。

adb shell pm grant com.mypackage android.permission.SET_ANIMATION_SCALE    

マニフェストにアクセス許可を追加してリフレクション手順を実行するだけでは十分ではないようです。

于 2015-05-05T03:57:56.407 に答える
1

コマンドラインからテストを実行している場合app/build.gradle、さらに良いアプローチは updateです。

android {
    ...
    ...

    testOptions {
        animationsDisabled = true
    }
}

./gradlew clean再構築する前に行う必要がある場合があります。Android Studio を使用した場合、apk に何も変更がないと仮定して、デバイスの apk が更新されない場合があります。それらに注意して、変更が実際にデバイスに反映されていることを確認してください.

こちらのドキュメントもお読みください。

カムマンド ラインから実行するインストルメント化されたテスト中のアニメーションを無効にします。

このプロパティを true に設定すると、コマンド ラインから Gradle を使用してインストルメント化されたテストを実行すると、 --no-window-animation フラグを指定して am instrument が実行されます。デフォルトでは、このプロパティは false に設定されています。

このプロパティは、Android Studio を使用して実行するテストには影響しません。

于 2020-05-05T04:45:39.693 に答える