2015-09-26 7 views
7

Próbuję wykonać automate the disabling of animations as described in this post, ale działa to tylko w przypadku wywoływania linii poleceń z poziomu connectedAndroidTest. Chcę użyć graficznego testu biegowego w Studio, z listą listy pokazującą zaliczone/nieudane testy. Z tym biegaczem, przyznanie zezwolenia (adb shell pm grant ... android.permission.SET_ANIMATION_SCALE) nigdy nie jest uruchamiane, pozornie ponieważ zadanie gradle installDebugAndroidTest nigdy nie jest uruchamiane, zamiast tego runner uruchamia Gradle aż do assembleDebugAndroidTest (lub dowolne alternatywne zadanie gradle określone w mojej konfiguracji uruchamiania), a następnie instalowanie com.mypackage.test przez inną (nie-Gradle?) metodę bezpośrednio przed uruchomieniem testów. Tak więc każda wcześniejsza autoryzacja uprawnień jest resetowana przez tę instalację.Android Studio: udziel zgody między instalowaniem testowego pakietu APK a uruchomionymi testami za pomocą graficznego testera testowego.

Jak mogę przyznać SET_ANIMATION_SCALE między graficzną instalacją pakietu testowego a uruchomieniem testu?

+0

Czy znalazłeś rozwiązanie tego problemu? Mam dokładnie ten sam problem, naprawdę denerwujący. Rozpocząłem pracę nad sztucznym krokiem budowania w Android Studio, ale to nie jest obecne w Androidzie Studio, więc jest w normalnym IntelliJ. Dzięki. –

+0

Naprawdę chciałbym również znaleźć rozwiązanie tego problemu. Wygląda na to, że zespół narzędzi ma dość irytujące niedopatrzenie, aby spełnić wymagania przed uruchomieniem, ale po instalacji i nie oferuje haka z IDE. –

+1

Otworzyłem żądanie funkcji: https://code.google.com/p/android/issues/detail?id=198813 –

Odpowiedz

1

Możesz to zrobić za pomocą refleksji, dodając uprawnienia do manifestu, tworząc test ekspresu espresso i zadanie (explained here in detail).

Dodaj jako gość do oczywistego z debugowania/wariantu makiety:

<uses-permission android:name="android.permission.SET_ANIMATION_SCALE"/> 

Tworzenie własne zadanie zależności installDebug i uczynić connectedDebugAndroidTest zależy od zadania. Musisz także uzyskać dotację z SET_ANIMATION_SCALE permission for testing.

Utwórz regułę testową który używa wewnętrznie odbicie odzyskać i przywrócić łuski animacji (code):

public class AnimationAwareWonderTestRule extends AnimationAwareAwesomeTestRule { 

    private float[] mAnimationScales; 

    @Override 
    protected void before() throws Throwable { 
     mAnimationScales = AnimationAwareWonder.tryToRetrieveAndDisableAnimationsAndTransitions(); 
    } 

    @Override 
    protected void after() throws Throwable { 
     AnimationAwareWonder.tryToRestoreAndEnableAnimationsAndTransitions(mAnimationScales); 
    } 
} 

It works ale wydaje się, że nie jest to możliwe w momencie korzystania z tego uprawnienia w marshmallow.

Powiązane problemy