android下 C++单元测试 及 代码覆盖率

Android下C++单元测试与代码覆盖率实践
本文介绍了如何使用gtest进行单元测试及lcov进行代码覆盖率统计,包括环境搭建、编译配置等,并通过一个示例展示了整个流程。

一、简单介绍

gtest是一款google提供的强大的测试框架,测试案例的编写也比较简单,gtest案例的编写可以参考系列博文:http://www.cnblogs.com/coderzh/archive/2009/03/31/1426758.html

Gcov是进行代码运行的覆盖率统计的工具,它随着gcc的发布一起发布的,它的使用也很简单,需要在编译和链接的时候加上-fprofile-arcs -ftest-coverage生成二进制文件,gcov主要使用.gcno和.gcda两个文件,.gcno是由-ftest-coverage产生的,它包含了重建基本块图和相应的块的源码的行号的信息。.gcda是由加了-fprofile-arcs编译参数的编译后的文件运行所产生的,它包含了弧跳变的次数和其他的概要信息。gcda文件的生成需要先执行可执行文件才能生成。

lcov代码覆盖率统计工具,是gcov的延伸版本,提供程序实际执行的信息(统计某行代码被执行的次数),其基于HTML的输出通过浏览器以清晰的图表形式呈现覆盖率统计结果。locv相关详细介绍可以参考博文:https://my.oschina.net/alphajay/blog/33725

二、搭建gtest与gmock开发环境

1. 下载源码包:https://github.com/google/googletest

2. 解码:unzip googletest

1) 编译gtest

① cd googletest-master/googletest

② 创建jni目录。创建jni/Android.mk:

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_CPP_EXTENSION := .cc 

LOCAL_MODULE := libgtest 

LOCAL_C_INCLUDES := include . 

LOCAL_SRC_FILES := ../src/gtest-all.cc 

include $(BUILD_STATIC_LIBRARY) 



include $(CLEAR_VARS) 

LOCAL_CPP_EXTENSION := .cc 

LOCAL_MODUL
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值