使用jenkins+Emma统计Android客户端单元测试覆盖率

这两天看了一下统计Android单元测试代码覆盖率的知识,看了一下比较简单。

  代码覆盖率的作用主要是用来查看测试用例执行完毕后,有哪些代码尚未覆盖到,未覆盖到的代码通常意味着未覆盖到的功能或场景,选用的开源软件Emma。

  第一步:把被测工程生成Ant build文件,andriod-app就是工程名

  android update project -p android-app

  第二步:将andriod测试工程也转换成ant工程,-m选项指定了测试工程对应的主andriod工程的位置,而android-test就是测试工程名:

  android update test-project -m ../android-app -p android-test

  第三步:执行下面的命令,编译、执行单元测试、收集覆盖率:

  ant clean emma debug install test

  在jenkins 上部署:

  1. 下载Emma Line Coverage Column插件并安装。

  2. 在jenkins 上配置上边三步命令。如图:

  3. 构建完成后,配置使用插件展示出报告,如图:

  4. 展示结果如图:

  备注:

  1. 被测试工程的要是调试版本,即Android manifest里面android:debuggable="true"

  2. 手机要有root权限。

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-09-26 15:37:25

使用jenkins+Emma统计Android客户端单元测试覆盖率的相关文章

一种Android客户端架构设计分享

前言:技术发展日新月异,业界各种Android客户端架构设计,五花八门,但我们不能简单地说哪种架构更好,因为脱离业务谈架构是没有任何意义的,适合业务的才是好架构.而架构也不是一成不变的,随着业务的发展,也许当初设计的架构已不足以支撑目前的业务,那么就需要改变之前的架构.接下来将分享下我们Android客户端的架构设计,在App的某个业务发展阶段或许有一些参考意义. 分层化与模块化 分层化与模块化应该是任何软件开发的共识. 分层化 在Android应用开发中通常可以分为如下几层:  SDK层:主要

使用XDebug调试及单元测试覆盖率分析

今天我就就自己对XDebug使用的一些体验做一小段分享.XDebug也是因为需要是用来生成覆盖率分析文件才安装的,刚接触不久,平时用的也不是很频繁,但是这个的确是一个好工具,如果想要依赖它来分析程序的性能还是需要自己亲手去试试.具体它有多好,请听我一一道来. <?XML:NAMESPACE PREFIX = O /> <!--[if !supportLists]-->一.<!--[endif]-->安装篇(XDebug 和PHPUnit) A:安装XDebug: Xde

Android客户端与PC服务器如何实现Socket通信

本文介绍Android终端持续扫描AP信息并发送给服务器端的实现.首先基于TCP协议在Android终端和PC两端之间形成网络虚拟链路.使用ServerSocket创建TCP服务器端,然后在Android客户端使用Socket的构造器来连接服务器.其中Android终端通过WIFI连接和PC处于同一局域网. 1. PC服务器启用ServerSocket 两个通信实体在建立虚拟链路之前,需要有一方先准备好,主动接受来自其他通信实体的连接请求. 使用ServerSocket对象监听来自客户端的Soc

使用Mina框架开发QQ Android 客户端(3) 登陆功能的实现

在博客中有登陆界面的文章http://blog.csdn.net/vestigge/article/details/8124674 就不在重复了,直接看登陆的代码, 用Mina传递字符串上节已经看过了,要实现传递对象,也非常简单,只需要修改一下过滤器: chain.addLast("codec", new ProtocolCodecFilter(new ObjectSerializationCodecFactory())); 在Android客户端,登陆的Activity中: publ

使用Mina框架开发QQ Android 客户端(2) 客户端与服务端的通信

一个简单的例子,对Mina框架有了大体的了解,在上节的基础上,看看 怎样实现客户端与服务端的通信, 废话不多说了,直接看代码: public class Test { public static void main(String[] args) throws Exception{ SocketConnector connector = new NioSocketConnector(); IoFilter filter = new ProtocolCodecFilter(new TextLineC

服务器-通过JSON格式获取到的html页面,怎么在Android客户端显示

问题描述 通过JSON格式获取到的html页面,怎么在Android客户端显示 服务器端直接将一个有图片有超链接的html封装成JSON中的一个字段的值,客户端获取后怎么去显示这个html呢?通过setText(Html.fromHtml(map.get(""content"")))明显是不可以的,因为还是有图片和链接的.JSON如下: 解决方案 http://blog.sina.com.cn/s/blog_75016706010149yy.html 解决方案二:

Android客户端实现注册、登录详解(1)_Android

我们在开发安卓App时难免要与服务器打交道,尤其是对于用户账号信息的注册与登录更是每个Android开发人员必须掌握的技能,本文将对客户端的注册/登录功能的实现进行分析,不到之处还请指出. 在这里我们仅讨论客户端如何请求服务器进行注册,而服务器在收到客户端请求后进行的一系列操作并不在本文所述范围内,有兴趣大家可以参考  请求服务器  客户端在进行用户信息的注册和登录时一般使用post请求(携带参数)去服务器.以volley框架请求服务器为例,真正与服务器进行交互的就是如下代码: StringRe

jenkins 远程构建Android的过程详解_Android

由于企业的需求,需要做一个网站开分享每个版本的Android的app,所以需要使用的工具如下: Jenkins平台,远程编译环境服务器一台,web服务器一台,根据自己的选择,可以搭配自己的资源,废话少说,直奔主题 1. Jenkins的操作 在Jenkins中添加一个节点,设置好远程的工作目录,创建好服务器的标签,然后创建好相关的环境键值对,比如Android_home,Java_home,Gradle_home等,这些都是比较平常的操作,这里就不罗嗦了,值得注意的有两点:第一,java的路径问

使用XDebug调试及单元测试覆盖率分析_php技巧

今天我就就自己对XDebug使用的一些体验做一小段分享.XDebug也是因为需要是用来生成覆盖率分析文件才安装的,刚接触不久,平时用的也不是很频繁,但是这个的确是一个好工具,如果想要依赖它来分析程序的性能还是需要自己亲手去试试.具体它有多好,请听我一一道来. <?XML:NAMESPACE PREFIX = O />   <!--[if !supportLists]-->一.<!--[endif]-->安装篇(XDebug 和PHPUnit) A:安装XDebug: X