Estoy desarrollando pruebas automatizadas para una aplicación de Android (usando Robotium). Para asegurar la consistencia y confiabilidad de las pruebas, me gustaría comenzar cada prueba con un estado limpio (de la aplicación bajo prueba). Para hacerlo, necesito borrar los datos de la aplicación. Esto se puede hacer manualmente en Configuración / Aplicaciones / Administrar aplicaciones / [Mi aplicación] / Borrar datos
¿Cuál es la forma recomendada de hacer esto mediante programación?
Respuestas:
Puede usar la herramienta de administrador de paquetes para borrar los datos de las aplicaciones instaladas (similar a presionar el botón 'borrar datos' en la configuración de la aplicación en su dispositivo). Entonces, usando adb podrías hacer:
fuente
Error: unknown command 'clear'
.Siguiendo la respuesta de @edovino, la forma de borrar todas las preferencias de una aplicación mediante programación sería
Advertencia : la aplicación forzará el cierre.
fuente
puede borrar los datos de la aplicación SharedPreferences con esto
y para borrar la aplicación db, esta respuesta es correcta -> Borrar la base de datos de la aplicación
fuente
Desde la versión 19 de API es posible llamar a ActivityManager.clearApplicationUserData ().
fuente
Verifique este código para:
fuente
Si solo tiene que borrar algunas preferencias compartidas, entonces esta solución es mucho mejor .
fuente
Usando Contexto , podemos borrar archivos específicos de la aplicación como preferencia, archivo de base de datos. He utilizado el siguiente código para las pruebas de IU con Espresso.
fuente
La forma más sencilla de hacer esto es
Esto borrará los datos y eliminará su aplicación de la memoria. Es equivalente a la opción de borrar datos en Configuración -> Administrador de aplicaciones -> Su aplicación -> Borrar datos.
Esto eliminará los datos por completo y forzará el cierre de la aplicación.
fuente
Esta solución realmente me ha ayudado:
Al utilizar a continuación dos métodos, podemos borrar los datos mediante programación.
fuente
si la versión de Android está por encima de kitkat, también puede usar esto
public void onClick (Ver vista) {
fuente
La única opción posible es ejecutar el comando ADB
adb shell pm clear package
antes de la prueba. El mayor problema es que es una especie de dolor de cabeza que combina la ejecución de pruebas y los comandos de shell.Sin embargo, nosotros (en Mediafe) vinimos con alguna solución que puede funcionar para usted en un dispositivo no rooteado normal. Todo lo que necesitas hacer es agregar una anotación. Todo lo demás se realiza ejecutando un script bash simple .
Simplemente agregue una
@ClearData
anotación antes de CUALQUIERA de sus pruebas y tada 🎉, el comando ADB clear se ejecutará antes de la ejecución de la prueba.Este es un ejemplo de tal prueba:
La idea es la siguiente
adb shell am instrument -e log true
Usando la misma idea, estas son todas las opciones que puede admitir fácilmente:
Usa solo anotaciones. Me gusta esto:
¡Prima! 🎁 Para cada prueba fallida:
En general, es fácil agregar más opciones, ya que las pruebas se ejecutan una por una desde el script bash en lugar de desde la tarea gradle.
📗 La publicación completa del blog : https://medium.com/medisafe-tech-blog/running-android-ui-tests-53e85e5c8da8
📘 El código fuente con ejemplos : https://github.com/medisafe/run-android-tests
Espero que esto responda la pregunta de 6 años;)
fuente