在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:
先讲android