Подтвердить что ты не робот

Как автоматизировать тестирование обновлений для Android

Мы использовали эспрессо для автоматизации андроида и включаем тестирование обновлений

Для тестирования обновлений нам необходимо выполнить 3 этапа:

  • Сделайте несколько действий в старой версии, чтобы подготовить некоторые данные.
  • Обновление до новой версии (обложка)
  • Проверьте, что данные, сохраненные в старой версии, сохранены правильно, а после обновления нет другой проблемы.

В настоящее время мы делаем это очень неуклюже:

#Before: prepare data on old version
adb -s $DEVICE shell am instrument -e class com.example.test.upgrade.UpgradeTest#prepareDataIn${version} -w com.example.test/com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner;

#install new version
adb -s $DEVICE install -r new_version.apk;

#After: test after upgrading
adb -s $DEVICE shell am instrument -e class com.example.test.upgrade.UpgradeTest#testUpgradeFrom${version} -w com.example.test/com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner;

Мы разорвали тест обновления с определенной версии на до/после 2 частей, потому что мы не знаем, можем ли мы (и как) установить новую версию внутри теста.

Но этот трехэтапный тест командой adb выглядит глупо, и мы не можем легко получить отчет junit.

Знает ли кто-нибудь более простой способ выполнить тестирование обновления Android, или вы могли бы указать, что мы делаем неправильно?

Он не ограничивается Espresso, если вы работаете с другими фреймворками, как вы можете выполнить тест обновления с ним?

Спасибо заранее.

4b9b3361

Ответ 1

Вы можете удалить существующий пакет с устройства, если вы уверены, что получили последнюю версию:

adb uninstall <your-package-name>

то вы можете просто установить и запустить тесты с последней установкой apk.

Другим способом является использование Gradle, который всегда будет проверять, есть ли какое-либо изменение кода со времени предыдущей сборки, затем он удалит и переустановит последнюю версию, не используете ли вы gradle для сборки и запуска тестов