😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD
如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。
😊 座右铭:不想当开发的测试,不是一个好测试✌️。
如果感觉博主的文章还不错的话,还请点赞、收藏哦!👍
说在前面
在本文你将了解到 Android 项目中 androidTest 和 test 的区别。
言归正传
在创建 Android 工程时,Android studio 会自动帮我们生成三个文件夹,分别是 androidTest、main、test[unitTest]。
androidTest:是用来编写Android Test测试用例的,可以对项目进行一些自动化测试。
main:是用来写 app 的逻辑代码和视图的。
test[unitTest]:是用来编写Unit Test测试用例的,是对项目进行自动化测试的另一种方式。
从上述描述中了解到 androidTest 和 test 都是用来是测试用例的 只是一个是 android test 一个是 unit test,unit test我们经常听到是单元测试,那么 android test又是什么呢?
首先需要了解的是我们构建出的 apk,测试代码并没有包含在内。测试代码能访问 app 代码,但是apk不能访问测试代码,而且测试不会被包含在 apk 包中。
在创建 Android 项目中,会在 build.gradle文件中看下一下内容,自动引入了 test的测试框架
Unit Test又称为local test代码,基于JVM,
对比下androidTest 和 test
androidTest | test |
---|---|
本地测试代码 | Instrumented Tests 依赖Android 库 |
依赖本地JVM | 依赖Android 环境 |
效率快 | 效率慢 |
先来运行 test 文件夹下的内容,点击代码左侧的绿色运行UI,选择对应的文件 直接运行,我们会在控制台看到运行结果:Tests passed:1,一个测试用例通过。
或者是在命令行窗口直接运行命令:gradle :app:testDebugUnitTest
来执行测试用例。
单元测试运行完之后在build文件夹下会生成一个测试报告:build—>reports—>tests—>index.html
选择浏览器方式打开对应的html文件,会看到详细的测试结果
androidTest
运行方式和 test 运行方式一致,我们直接查看运行结果,会看到我们运行的设备也在其中,
运行结束之后也同样有一个测试报告,build—>reports—>tests—>index.html,如果没有真机设备或者模拟器这个case是运行不了的。一般情况下涉及到了UI组件,就需要使真机来测试,一般选用Integration Tests测试方式
androidTest 更像是整合了一些类确保他们组合起来的表现符合预期。