adb 命令行执行单元测试

这篇具有很好参考价值的文章主要介绍了adb 命令行执行单元测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、配置 adb 环境变量


可参考教程:Mac配置ADB环境变量


adb在我们配置 Android Studio 时 安装的 AndroidSDK 的 platformTools 目录中,所以我们首先要找到 adb 所在目录,就在sdk目录下面。在Project Structure中,找到SDK安装路径.


adb 命令行执行单元测试,adb,单元测试

ADB的目录就在 上面目录的 platform-tools中


直接终端编辑 bash_profile 文件,配置环境变量

vi ~/.bash_profile


将下面的进行复制粘贴到文件中即可,记得把users/name 中的name改成自己的本机用户名

export ANDROID_HOME=/Users/name/Library/Android/sdk
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools

:wq 进行保存后,输入 source ~/.bash_profile 生效


我们最后输入 adb version,查看是否有结果,有结果那么此时adb 环境变量配置成功


adb 命令行执行单元测试,adb,单元测试

2、adb 执行测试


参考文档:developer.android.com

官方的文档还是看的有点抽象,我们可以自己实践一下。

选择一个单元测试方法,点击绿色的执行测试按钮


adb 命令行执行单元测试,adb,单元测试

先使用图形交互点击的方式,执行了一个测试方法,其实就是底层默认启动了一个adb命令。在我们可以看一下,adb书写的参数以及怎么具体执行


adb 命令行执行单元测试,adb,单元测试

$ adb shell am instrument -w -m -e debug false -e class ‘com.didi.testcase.basemap.A’ com.didi.mapsdk_base.test/androidx.test.runner.AndroidJUnitRunner

$ adb shell am instrument -w -m -e debug false -e class ‘com.didi.testcase.basemap.TestBaseMapBD#testUiSettingIsCompassEnabled’ com.didi.mapsdk_base.test/androidx.test.runner.AndroidJUnitRunner


我们可以在自己的终端,直接复制上面的adb命令,发现可以进行启动测试方法,从而达到通过命令行的方式完成对单元测试方法的执行.


3、官方文档解读 adb 使用


(1)第一条执行测试的adb命令


文档解说,官方文档中的 adb 使用命令进行解读


adb 命令行执行单元测试,adb,单元测试

上面提到,am instrument 测试有几个操作


(1)构建或者重新构建主应用测试软件包


解读:build打包没问题,能编译通过


(2)将APK文件安装到 Android设备中获模拟器上


解读:单元测试的方法肯定依赖于app软件,所以要连接设备后,安装应用软件包和test测试软件包。点击以下gradle命令需要在手机上安装apk包。


adb 命令行执行单元测试,adb,单元测试

(3)执行adb命令


adb shell am instrument -w <test_package_name>/<runner_class>

  • 这个命令 <test_package_name>,指的是整个测试包

- <runner_class> 指的是执行的测试程序类(也就是执行什么测试程序,用AndroidJunitRunner进行测试),一般默认是androidx.test.runner.AndroidJUnitRunner,我们不需要改动

  • -w 指的是 文档有讲解,就是adb执行测试命令,等测试执行输出完日志后,在退出adb shell状态,保证我们能够看到执行测试的结果

  • 这一整条命令的意思就是 执行整个软件测试包中的所有测试方法


疑问:什么是测试应用Android软件包?

<test_package_name>,这里提到了一个 测试应用Android软件包,是什么意思呢?


adb 命令行执行单元测试,adb,单元测试


查看解释发现 Android 软件包就是 applicationId,在 build.gradle 文件中能够找到,然后因为是测试软件包,所以需要在后面再追加一个.test 然后我们就可以定位到手机上测试哪个软件包下的方法了


(2)am instrument 参数


adb 命令行执行单元测试,adb,单元测试

文档中列举了一些adb shell am instrument 命令后面的参数,说明用法非常清楚。

这里注意的就是,-e 选项在后面还有很重要的作用


(3)-e 参数 的 key-value键值对


adb 命令行执行单元测试,adb,单元测试

文档中列举出了 -e 参数可以 跟的键值对,非常有用,圈住的就是我们正常点击测试执行时要用到的

-package <package_name>可以指定执行某个包下的所有测试方法

  • class <class_name> 可以执行执行某个类下的所有测试方法,跟在class_name后面的 #<method_name>可以具体执行每个类中的测试方法
  • debug,是否在调试状态执行

(4)用法用例


文档最后提供了一个实例,我们可以看看,写的很清楚。

如上图,在这里说明项目结构,方便进行填入参数, 给定测试软件包名,测试类、测试方法


adb 命令行执行单元测试,adb,单元测试

第一个案例:只指定了测试软件包名,所以执行软件包下的所有测试类


adb 命令行执行单元测试,adb,单元测试


第二个案例:使用 -e class 指定了TestClass1测试类,所以执行这个类中的所有测试方法。


adb 命令行执行单元测试,adb,单元测试

第三个案例:使用 -e class <class_name>#<method_name>指定了 TestClass1 测试类,TestClass2 中的 testMethod3 方法,执行两块测试内容,中间使用逗号隔开,然后使用AndroidRunner程序类开始执行测试类/方法.


adb 命令行执行单元测试,adb,单元测试

4、存在问题


缺点:无法生成测试报告进行查看,无法生成覆盖率统计报告,只能够用例执行而已。还是建议使用 gradle 命令文章来源地址https://www.toymoban.com/news/detail-634344.html

到了这里,关于adb 命令行执行单元测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 执行 JUnit 单元测试前,修改环境变量

    同一份代码,在不改变配置文件的情况下,可以连接不同的数据库,进行JUnit测试。 非开发、测试、生产环境的区别。而是   我就站在这里,指哪打哪! 避免重复造轮子,参考博文: 使用junitspring修改系统的环境变量,解决docker程序测试问题_junit 环境变量_fly-iot的博客-CS

    2024年02月07日
    浏览(46)
  • 软件测试关于adb命令⼤全

    adb的全称为Android Debug Bridge 调试桥,是连接Android⼿机与PC端的桥梁,通过adb可以管理、操作模拟器和设备,如安装软件、 系统升级、运⾏shell命令等。 0. adb服务相关操作 adb kill-server #终⽌adb服务进程 adb start-server #重启adb服务进程 adb root #已root权限重启adb服务 adb wait-for-devic

    2024年03月09日
    浏览(50)
  • 车载测试——你需要掌握的Adb命令

    这两年,测试从业人员遇冷令很多人都没了方向。 有的人想转行; 有的人想继续深耕; 可是大家都在说,冬天来了,春天还会远吗。 你眼下正经历的,到底是初冬还是初春,你正经历着的磨难,最难究竟有多难。 此博文开栏的目的:分享车载测试技术知识,致所有在车载

    2024年02月05日
    浏览(36)
  • Unittest单元测试之unittest用例执行顺序

    当在一个测试类或多个测试模块下,用例数量较多时,unittest在执行用例 (test_xxx)时,并不是按从上到下的顺序执行,有特定的顺序。 unittest框架默认根据ACSII码的顺序加载测试用例,数字与字母的顺序为: 0~9,A~Z,a~z。 对于类来说,class TestAxx 会优先于class TestBxx被执行。

    2024年02月13日
    浏览(39)
  • 功能测试(九)—— adb命令、Charles手机抓包

    目录 目标 一、APP命令格式 1.1 查看已连接的设备列表 1.2 断开连接设备 1.3 无线连接设备 1.4 开启adb服务 1.5 关闭adb服务 1.6 安装软件包 1.7 卸载软件包 1.8 获取包名 1.9 获取当前窗口(注意大小写区分) 1.10 清除缓存 1.11 启动/停止应用 1.12 获取手机日志 1.13 获取启动时间

    2024年02月09日
    浏览(58)
  • Adb操作命令及详解------全面科普(测试木头人)

    今天给大家整理一下Adb命令,欢迎大家来一起学习 对此内容大家有任何疑惑大家都可以私信木头人哦 目录 一、adb概念 二、adb命令 三、adb文件操作命令 四、Adb设备信息操作命令 五、Adb监控手机端资源的命令 六、adb shell , adb 命令的区别: 七、adb shell命令 八、Adb shell 文件管理

    2024年01月25日
    浏览(39)
  • 软件测试基础篇五App之adb命令

    命令优势:效率高 面试会问 工具的本质也是调用命令 解决工具的能力边界 ADB可以用来安装卸载软件、管理安卓系统软件、启动测试、抓取操作日志等 1、查看已连接的设备列表:adb devices 2、断开连接设备: adb disconnect 手机ip 3、无线连接设备: adb connect 手机ip(手机和电脑处于同

    2024年02月03日
    浏览(55)
  • dotnet 使用 MSTestRunner 将单元测试制作为独立可执行文件

    以往的单元测试都是不能单独作为一个独立的可执行文件跑的,需要在 VisualStudio 或 VSTest 或 dotnet test 里面运行。这就限制了运行单元测试的环境了,有时候开发者可能期望在无 SDK 或开发环境下执行单元测试,这时就可以用到本文介绍的 MSTestRunner 功能,将单元测试制作为独

    2024年04月26日
    浏览(41)
  • java程序启动时自动执行方法 @PostConstruct,单元测试@Test

    java程序启动时自动执行方法,在方法上添加@PostConstruct注解即可,可以代替单元测试junit的@Test注解 @PostConstruct //程序启动时自动执行方法 @Test //需要选中该方法运行启动(单元测试) java 代码----程序启动时自动执行方法 @PostConstruct java 代码----需要选中该方法运行启动(单元

    2024年02月05日
    浏览(44)
  • 【解决】android设备有root权限,执行“adb disable-verity”命令报错“verity cannot be disabled/enabled - USER build”

    这个错误提示意味着你的设备是使用USER版本的固件构建的,这个版本不允许禁用verity功能。但是,你可以尝试以下步骤来解决问题: 确认你的设备是否已经root,可以通过执行“adb root”命令来检查。 确认你的设备是否已经启用了开发者选项,可以在设备设置中找到“开发者

    2024年02月03日
    浏览(95)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包