Android应用生成测试覆盖率报告_android mk testcoverageenabled-程序员宅基地

技术标签: 软件测试  

对于使用AndroidJUnit4 runner创建的 Android集成 测试用例,之前一直都没有发现,一种合适的产生代码覆盖率的方式。我曾经尝试过很多方式,但是要不就是不奏效,要不就是只合适我现在已经不再使用的Robolectric测试框架,其他开发者,也渐渐不再新项目中使用这个测试框架了。比如Square的Sqlbrite项目,现在已经开始采用AndroidJUnit4 runner进行他们的项目测试。最近,我在Reddit上面发现了一个有趣的讨论,从中我发现了一个不需要额外插件,脚本和多行配置就可以简单生成代码覆盖率的方式,Android SDK 现在已经内置了对 Emma Test Coverage框架的支持,可以在官方文档中进行查阅。
  我们只要做的一件事,就是在 build.gradle 中应用jacoco—android插件。
applyplugin:'jacoco-android'
  译者批注
  在高版本的SDK中,上述插件也不需要引用
  然后参照如下示例,将 testCoverageEnabled 设置为 true
  android {
     buildTypes {
        debug {
           testCoverageEnabled = true
        }
     }
  }
  为了能生成代码覆盖率报告,我们需要将Android设备或者模拟器连接到计算机,因为 在生成报告前,会执行 connectedCheck 任务。
  之后,我们可以执行如下的命令行
./gradlew createDebugCoverageReport
  该任务会分析 /src  android {
     buildTypes {
        debug {
           testCoverageEnabled = true
        }
     }
  }/main/java/ 路径下的代码和 /src/androidTest/java/ 目录下 单元测试用例。
  在执行这个任务之后,我们可以在模块的如下路径中找到代码覆盖率报告
/build/outputs/reports/coverage/debug/
  我们可以在 浏览器中打开 index.html 文件,可以看见可视化的报告。 
  同时,在同一级目录下,我们也可以找到可以供持续集成覆盖率分析使用的 report.xml 文件。
  除了上面提到的文件,Gradle也会在如下的路径创建 coverage.ec 文件。
/build/outputs/code-coverage/connected/
  某些情况下,我们可能需要这些文件,比如在选择Jenkins插件或者别的工具生成代码覆盖率的时候。
  下面,你能看见一个 Android 开源项目,Presfer,的代码覆盖率报告。
  这是一份由 JaCoCo 代码覆盖率库生成的报告。
  通过分析报告,我增加了部分新的测试用例,小幅度优化了部分代码,使得项目的覆盖率达到了 100%。
  为了能在 Jenkins CI 上发布报告,可以使用代码覆盖率插件,但是并不能确认插件的稳定性。另一种解决方案是 HTML Publisher plugin,我们可以增加相应动作,在 Jenkins 的任务中,通过默认的HTML界面产生覆盖率报告,我认为这是一种非常方便的方式,易于创建,并且方便进行代码导航,能定位到没有覆盖的代码行,方法和分支。

  我们可以方便的观察到Android项目的代码覆盖情况通过这种简洁快捷的方式,能帮助我们最终发现项目的瓶颈所在,增加应用或者lib库的整体质量。

如果对软件测试有兴趣,想了解更多的测试知识,可以加入我的QQ群  高级测试学习大家庭:652068511

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/a13161333486/article/details/80195993

智能推荐

中北网安实训笔记-(20200628)-域名信息、端口信息收集、nmap手册网址、敏感信息收集、GIT信息泄露_中北网络域名-程序员宅基地

文章浏览阅读232次。今天内容1.信息收集(收集目标所有可以收集的信息) 工具 客户端 网页端域名信息(子域名)站点信息端口信息敏感信息2.扫描探测(awvs xray)漏洞的入口点——————————————————PPT:域名解析过程:用户–>浏览器输入baidu.com -->浏览器DXS服务器缓存–>系统缓存dns服务器缓存C://windows/system32/drivers/etc/host–>dns服务器(发送请求)whois查询备案域名划分子域名_中北网络域名

c语言用fun函数求最大公约数,C语言程序设计第七次作业(示例代码)-程序员宅基地

文章浏览阅读707次。一、学习内容本次课学习了函数的基本知识,需要大家对如下知识点进行总结:1. 函数定义的基本格式,函数定义和函数原型(声明)的区别何在?2. 函数的调用方式有哪几种3. 什么是形参,什么是实参,函数调用时的参数传递机制是什么?二、实验内容1.定义一个判断素数的函数isprime(int n),利用该函数输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)2.求两个正整数的最..._调用fun函数求最大公约数

MyBatis-Plus实现多表联查(一对一,一对多使用)_mybatisplus一对多-程序员宅基地

文章浏览阅读3.8k次,点赞56次,收藏33次。在使用mybatis-plus开发需求的时候会发现对于大部分的业务场景来说都会使用到join来进行联表查询,但是mybatis-plus封装的 mapper 不支持 join,如果需要支持就需要自己手动去实现,给大家推荐一个好用的插件(Mybatis-Plus-Join(简称 MPJ)是一个 Mybatis-Plus的增强工具,在 MyBatis-Plus 的基础上只做增强不做改变,为简化开发、提高效率而生。_mybatisplus一对多

基于JAVA学生信息管理系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署-程序员宅基地

文章浏览阅读106次。基于JAVA学生信息管理系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署。springboot基于springboot和vue的酒店管理系统。springboot基于SpringBoot的自助旅游导航系统。springboot基于JSP的企业办公管理系统设计与实现。JSP宠物食品店系统的设计与实现sqlserver。ssm基于Java的幼儿早教系统软件的设计与实现。ssm基于vue的健康餐饮管理系统的设计与实现。ssm基于JAVA的求职招聘网站的设计与实现。

Nginx_Ubuntu-程序员宅基地

文章浏览阅读113次。一. 基本步骤  1.1环境准备    开始前,请确认gcc g++开发类库是否装好,默认已经安装。    注:等待linux下载更新功能准备好了 重启系统 在执行下载安装命令,如执行命令没有问题可以继续往下走      1. 最小Ubuntu安装插件      1. 需要安装        sudo apt-get install build-essen..._snail mock

Android逆向安全-无侵入找关键call之trace日志分析大法_安卓逆向的trace方法-程序员宅基地

文章浏览阅读2.9k次,点赞2次,收藏9次。标题找关键call是逆向的基本技能和分析目标,找到关键call后便可以进一步利用。在安卓App的逆向分析中,人肉逆向分析虽说不难,但是繁琐,特别是现在App体积动辄几十MB甚至几百MB,反编译出的jar或者smali文件相当多,找关键call无疑是大海捞针。那么有什么方法可以快速找关键call呢?之前介绍过两个方法:一个是插桩日志分析法,一个是借助加固的方法。插桩日志分析法,理解起来比较..._安卓逆向的trace方法

随便推点

confluence搭建部署_ata confluence-程序员宅基地

文章浏览阅读1.1k次。confluence企业wiki搭建部署_ata confluence

SpringCloud与SpringBoot版本对应关系_springboot 2.1.1 对于的cloud-程序员宅基地

文章浏览阅读830次。今天在创建SpringCloud项目过程中遇到了一个坑:当我将SpringCloud项目架子搭好之后,启动Eureka的时候报错(具体的错误提示忘记截图了),然后对问题摸索了好久之后才发现是SpringBoot与SpringCloud对应的版本问题。由于我项目中SpringBoot项目的版本用的是2.2.X,而SpringCloud的版本用的是 Greenwich.SR2所以造成了报错导致Eur..._springboot 2.1.1 对于的cloud

如何恢复硬盘数据?简单解决问题_磁盘恢复 csdn-程序员宅基地

文章浏览阅读467次。无论是工作中还是生活里都离不开电脑,因为电脑可以用来编辑成我们需要的文件,还可以存储_磁盘恢复 csdn

苹果手机测试网络速度的软件,‎App Store 上的“网速测试大师-测网速首选”-程序员宅基地

文章浏览阅读8.2k次。网速测试大师(SpeedTest Master)致力于为全球用户提供快速专业的网络测速服务。【最新功能】5G测速、Ping 测试、游戏Ping、一键设备检测。网速测试大师,是您的手机管家,wifi管家,随时随地的测速专家【全新工具】重磅推出史上最强工具箱:Ping测试,游戏Ping,跟踪路由。。。轻松解决任何网络问题【一键测速】只需30秒,快速、准确获得网速测试结果【全网测试】支持各大运营商测速;..._苹果手机测速软件

教了一年少儿编程,说说感想和体验-程序员宅基地

文章浏览阅读7.7k次,点赞24次,收藏115次。近两三年,少儿编程教育迅速崛起,成了 STEM 教育的主要代表。缘起少儿编程这个概念在国内兴起,总有个三四年了。2016 年,曾经有人问:“儿童学习编程是不是为了将来做'程序猿'?”。我当时给的回答是: 编程说白了就是用一种简单的符号语言描述一种解决方案来解决实际问题。编出程序的效果取决于两个方面:1、对于实际业务问题的了解;2、对算法和数据的掌控。 这两者的基..._python编程少儿课程课后评价

22东华大学计算机专硕854考研上岸实录-程序员宅基地

文章浏览阅读5.5k次,点赞21次,收藏72次。22东华大学计算机专硕854考研上岸实录注:本人所有学习笔记都在CSDN个人专栏(数学英语854数据库408等),这样方便个人复习,不用手写浪费时间,错题也是放在word文档中(题目、答案截图),方便纠错复习。(以上为本人所有考研纸质书籍,其他均为电子版资料。一般都是看电子版习题,答案写在演草纸上)一.2021年3~7月 数学第一轮、英语第一轮、408第一轮3月份的时候想报考上海大学,上海大学的专硕是22408,所以我开始着手准备起来。第一阶段我跟的是汤家凤的零基础课程(B站),老汤的确是一个很_东华大学计算机专硕

推荐文章

热门文章

相关标签