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

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

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

  1. Сделайте несколько действий в старой версии, чтобы подготовить некоторые данные
  2. Обновление до новой версии (установка обложки)
  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, если вы работаете с другими фреймворками, как вы проводите тест обновления?

Заранее спасибо.

Solutions Collecting From Web of "Как автоматизировать тестирование обновлений для Android"

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

 adb uninstall <your-package-name> 

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

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