Я занимаюсь разработкой автоматизированных тестов для приложений Android (с использованием Robotium). Чтобы обеспечить последовательность и надежность тестов, я хотел бы начинать каждый тест с чистого состояния (тестируемого приложения). Для этого мне нужно очистить данные приложения. Это можно сделать вручную в меню «Настройки» / «Приложения» / «Управление приложениями» / [My App] / «Очистить данные».
Каков рекомендуемый способ сделать это программно?
Ответы:
Вы можете использовать инструмент менеджера пакетов для очистки данных для установленных приложений (аналогично нажатию кнопки «очистить данные» в настройках приложения на вашем устройстве). Таким образом, используя ADB, вы можете сделать:
источник
Error: unknown command 'clear'
.После ответа @ edovino, способ очистки всех настройки приложения.
Предупреждение : приложение принудительно закроется.
источник
вы можете очистить данные приложения SharedPreferences с этим
и для очистки базы данных приложения этот ответ правильный -> Очистка базы данных приложения
источник
Из API версии 19 можно вызывать ActivityManager.clearApplicationUserData ().
источник
Проверьте этот код, чтобы:
источник
Если у вас есть только пара общих настроек для очистки, то это решение гораздо приятнее .
источник
Используя Context , мы можем очистить определенные файлы приложения, такие как настройки, файл базы данных. Я использовал приведенный ниже код для тестирования пользовательского интерфейса с помощью Espresso.
источник
Самый простой способ сделать это
Это очистит данные и удалит ваше приложение из памяти. Это эквивалентно опции очистки данных в разделе «Настройки» -> «Менеджер приложений» -> «Ваше приложение» -> «Очистить данные».
Это полностью удалит данные и принудительно закроет приложение.
источник
Это решение действительно помогло мне:
Используя два следующих метода, мы можем очистить данные программно
источник
Если версия Android выше Kitkat, вы можете использовать это
public void onClick (Просмотреть представление) {
источник
Единственный возможный вариант - запустить команду ADB
adb shell pm clear package
перед тестом. Самая большая проблема в том, что это своего рода головная боль, сочетающая выполнение тестов и команды оболочки.Тем не менее, мы (в Mediafe) пришли с некоторым решением, которое может работать для вас на обычном устройстве без рута. Все, что вам нужно сделать, это добавить аннотацию. Все остальное делается с помощью простого скрипта bash .
Просто добавь
@ClearData
аннотацию до ЛЮБОГО из ваших тестов и tada command, команда ADB clear будет выполнена перед выполнением теста.Вот пример такого теста:
Идея заключается в следующем
adb shell am instrument -e log true
Используя ту же идею, все эти опции вы можете легко поддержать:
Используйте только аннотации. Как это:
Бонус! 🎁 Для каждого неудачного теста:
В общем, легко добавить больше опций, поскольку тесты выполняются один за другим из скрипта bash, а не из задачи gradle.
Post Полный пост в блоге : https://medium.com/medisafe-tech-blog/running-android-ui-tests-53e85e5c8da8
📘 Исходный код с примерами : https://github.com/medisafe/run-android-tests
Надеюсь, что это отвечает на вопрос 6 лет;)
источник