Android Studio: conceder permiso entre la instalación de la prueba APK y las pruebas en ejecución con el corredor de prueba gráfica
Estoy tratando de automatizar la desactivación de las animaciones como se describe en esta publicación , pero que sólo parece funcionar para la línea de comandos invocación de connectedAndroidTest
. Quiero utilizar el corredor de prueba gráfica en Studio, con el cuadro de lista que muestra las pruebas pasadas o fallidas. Con ese corredor, la concesión de permiso ( adb shell pm grant ... android.permission.SET_ANIMATION_SCALE
) nunca se ejecuta, aparentemente porque la tarea installDebugAndroidTest
nunca se ejecuta, en su lugar el corredor está ejecutando Gradle hasta assembleDebugAndroidTest
(o cualquier gradle alternativo Tarea que especifico en mi configuración de ejecución), y luego instalar com.mypackage.test
por algún otro método (no-Gradle?) Inmediatamente antes de ejecutar las pruebas. Por lo tanto, cualquier concesión de permiso anterior es restablecida por esa instalación.
¿Cómo puedo conceder SET_ANIMATION_SCALE
entre la instalación de la prueba gráfica del corredor de pruebas y la ejecución de la prueba?
- Pruebas de Android: Diálogo. Compruebe que esShowing ()
- Prueba de Android: La ejecución de instrumentación falló debido a 'java.lang.ClassNotFoundException'
- Dagger 2 Dependency Injection en Android TestCase
- ¿Es esta una forma correcta de usar Dagger 2 para la aplicación de Android en la prueba de unidad para anular las dependencias con mocks / fakes?
- Pruebas de la unidad Android con Dagger 2
- ¿Hay una manera de agregar Extras a la actividad usando ActivityInstrumentationTestCase2
- Android - acceso a los activos de la aplicación de prueba
- ¿Cómo Dagger 2 facilita las pruebas en Android?
- Androide. ¿Cómo puedo deslizar NavigationDrawer de la biblioteca de pruebas Espresso?
- Pruebas con Robolectric y ANT
- Gradle + Robolectric: ¿Dónde puedo poner el archivo org.robolectric.Config.properties?
- ¿Cómo puedo acceder a los recursos sin procesar en los proyectos de prueba de Android?
- ¿Es posible averiguar si una aplicación de Android se ejecuta como parte de una prueba de instrumentación
Puede hacerlo utilizando la reflexión, agregando el permiso al manifiesto, creando una regla de prueba Espresso y una tarea ( explicada aquí en detalle ).
Agregue el permiso al manifiesto de una variante debug / mock:
<uses-permission android:name="android.permission.SET_ANIMATION_SCALE"/>
Crea tu propia tarea dependiendo de installDebug
y haz que installDebug
dependa de tu tarea. También es necesario conceder el permiso SET_ANIMATION_SCALE para la prueba .
Cree una regla de prueba que utilice la reflexión interna para recuperar y restaurar escalas de animación ( código ):
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); } }
Funciona pero parece que no es posible en este momento utilizar este permiso en MarshMallow.
- Iconphont charachterspace colapsa en Android (Fontastic)
- DisplayListCanvas se inicia en unbender RenderNode (sin mOwningView)