Android单元测试之辅助工具

在Android Stuido新建过工程的开发者,应该有注意到,该工程默认会新建androidTest及test的测试包。在Android Stuido中,在androidTest编写的单元测试,默认使用jacoco插件生成包含代码覆盖率的测试报告;而test包下的单元测试代码,则直接使用Android Studio已有工具IntelliJ IDEA生成覆盖率,也可以通过自定义gradle task使用jacoco插件生成与androidTest相同格式的测试报告。

androidTest 与 test:

区别:androidTest是存放一些与View(UI界面层)相关的单元测试案例的测试代码集,需要在真机或虚拟机上运行。一般使用的框架有:Instrumentation、Espresso,也可以编写自动化测试案例(框架:Uiautomator2.0);
而test包则一般只存放与Model(数据层)相关的单元测试案例,但Android几乎无法实现MV完全解耦,所以目前在test包下可能也会涉及到View的测试。直接在JVM虚拟机上运行即可,速度快。框架:Robolectric+Mockito+其他。

运行方式:Android Studio 2.0版本开始,已经能够智能检测当前的测试是androidTest还是test了,低版本的可以在Build Variants中设置Test Artifact或者Add New Configuration 时选择Unit Tests(对应test),Android Instrumentation Tests(对应androidTest)。

jacoco:

先讲androidTest的使用方法,配置jacoco

添加完代码之后,打开右侧的Gradle面板运行connectedAndroidTest任务,右键
或在Terminal控制台输入 gradlew connectedAndroidTest,回车

稍后等待中...在\app\build\reports\androidTests\connected\index.html:

以上就是生成报告的操作流程!!!