android - 如何自动化 android 的升级测试

标签 android junit automated-tests android-testing android-espresso

我们一直在使用 espresso 进行 android 自动化,其中包括升级测试

对于升级测试,我们需要执行 3 个步骤:

  1. 在旧版本中做一些 Action 准备一些数据
  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;

我们将某个版本的升级测试分为前/后两部分,因为我们不知道我们是否能够(以及如何)在测试中安装新版本。

但是,通过 adb 命令进行的这 3 步测试看起来很愚蠢,我们无法轻松获得 junit 报告。

那么有没有人知道执行 android 升级测试的更简单的方法,或者您能指出我们做错了什么吗?

不限于Espresso,如果你正在使用其他框架,你如何使用它进行升级测试?

提前致谢。

最佳答案

如果你确定你有最新的包,你可以从设备上卸载现有的包:

adb uninstall <your-package-name>

然后您可以使用最新的 apk 安装来安装和运行测试。

另一种方法是使用 Gradle,它会始终检查自上次构建以来是否有任何代码更改,然后它会卸载并重新安装最新的,你不是使用 gradle 来构建和运行你的测试吗?

关于android - 如何自动化 android 的升级测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23158926/

相关文章:

java - 这个对 getString 的调用实际上会返回 null 吗?

android - 在 org.json.JSON.typeMismatch(JSON.java :107)

junit - 无法使用 PowerMockito/Mockito 模拟 URL 类

css - 等待 testcafe 中的 css 属性值

jquery - 如何在 domReady javascript 上进行自动化测试

javascript - 了解 testcafe 装置中的执行顺序

java - 如何在运行时启用/禁用上下文菜单项

android - OpenGL FRONT_AND_BACK

android - 单元测试网络响应。调试时有效,实际运行时无效

java - AssertThat 返回匹配列表的错误