Je développe des tests automatisés pour une application Android (utilisant Robotium). Afin d'assurer la cohérence et la fiabilité des tests, je souhaite démarrer chaque test à l'état propre (de l'application sous test). Pour ce faire, je dois effacer les données de l'application. Cela peut être fait manuellement dans Paramètres / Applications / Gérer les applications / [Mon application] / Effacer les données
Quelle est la méthode recommandée pour y parvenir par programme?
Réponses:
Vous pouvez utiliser l'outil de gestion de packages pour effacer les données des applications installées (comme en appuyant sur le bouton `` Effacer les données '' dans les paramètres de l'application sur votre appareil). Donc, en utilisant adb, vous pouvez faire:
la source
Error: unknown command 'clear'
.Suite à la réponse de @ edovino, le moyen d'effacer toutes les préférences d'une application par programme serait
Attention : l'application va forcer la fermeture.
la source
vous pouvez effacer les données d'application SharedPreferences avec ce
et pour effacer la base de données de l'application, cette réponse est correcte -> Effacer la base de données de l'application
la source
À partir de la version 19 de l'API, il est possible d'appeler ActivityManager.clearApplicationUserData ().
la source
Vérifiez ce code pour:
la source
Si vous n'avez que quelques préférences partagées à effacer, cette solution est bien plus agréable .
la source
En utilisant le contexte , nous pouvons effacer les fichiers spécifiques à l'application comme les préférences, le fichier de base de données. J'ai utilisé le code ci-dessous pour les tests d'interface utilisateur avec Espresso.
la source
La manière la plus simple de procéder est
Cela effacera les données et supprimera votre application de la mémoire. Cela équivaut à l'option d'effacement des données sous Paramètres -> Gestionnaire d'applications -> Votre application -> Effacer les données.
Cela supprimera complètement les données et forcera la fermeture de l'application
la source
Cette solution m'a vraiment aidé:
En utilisant les deux méthodes ci-dessous, nous pouvons effacer les données par programme
la source
si la version Android est supérieure à kitkat, vous pouvez également l'utiliser
public void onClick (vue vue) {
la source
La seule option possible est d'exécuter la commande ADB
adb shell pm clear package
avant le test. Le plus gros problème est que c'est une sorte de casse-tête combinant l'exécution de tests et les commandes shell.Cependant, nous (chez Mediafe) avons proposé une solution qui peut fonctionner pour vous sur un appareil non enraciné régulier. Tout ce que vous avez à faire est d'ajouter une annotation. Tout le reste est fait en exécutant un simple script bash .
Ajoutez simplement une
@ClearData
annotation avant TOUT de vos tests et tada 🎉, la commande ADB clear sera exécutée avant l'exécution du test.Voici un exemple d'un tel test:
L'idée est la suivante
adb shell am instrument -e log true
En utilisant la même idée, ce sont toutes des options que vous pouvez facilement prendre en charge:
N'utilisez que des annotations. Comme ça:
Prime! 🎁 Pour chaque test échoué:
En général, il est facile d'ajouter plus d'options, puisque les tests sont exécutés un par un à partir du script bash plutôt que de la tâche gradle.
📗 Le billet de blog complet : https://medium.com/medisafe-tech-blog/running-android-ui-tests-53e85e5c8da8
📘 Le code source avec des exemples : https://github.com/medisafe/run-android-tests
J'espère que cela répond à la question de 6 ans;)
la source