模拟器Emulator跑gtest单体测试,Linux平台代码覆盖率测试

PC机是Linux系统,利用gtest进行UT测试生成覆盖率报告(HTML格式)。

本文主要是利用adb来实现模拟器,具体步骤如下:

一、安装lcov(LCOV介绍:https://blog.csdn.net/livelylittlefish/article/details/6321887)

  // 安装lcov-1.13(下载网址:https://fossies.org/linux/privat/lcov-1.13.tar.gz/)

二、编写单体测试代码(自行百度)

1、gtest Code路径

在要测试的文件夹内创建一个gtest文件夹,在此文件夹内编写个gtestCode

2、gtest Android.mk编写

3、在测试代码头文件中包含一下头文件

4、源文件参考:

http://mzhx-com.iteye.com/blog/1673469

https://blog.csdn.net/zm_21/article/details/37820257

三、编译mk文件(自行百度)

说明:对使用gtest手段测试代码(Lib库)的执行覆盖率,须在对应mk文件中添加以下选项:

选项:fprofile-arcs –ftest-coverage 

目的:要使lcov生效,需要在编译选项中新增–fprofile-arcs –ftest-coverage,编译完成才能生成覆盖率相关的*.gcda文件

四、运行

1.make gtest Code,生成gcno文件

打开终端(用于编译)
cd 到项目所在的根目录   (morley_9)
source build/envsetup.sh
lunch   对应的选项,模拟器的编号

make gtstXXXX -j8(gtstXXXX根据实际情况改,生成文件gtstXXXX,同时生成gcno文件,gcno路径:⇒ /out/target/product/generic_x86_64/obj/SHARED_LIBRARIES/libvehicleddiag_intermediates)

make libXXX -j8 (libXXX根据实际情况改,生成.so文件)

 

2.

编译全程序  (morley9_UT)

打开模拟器

emulator -selinux permissive -logcat -s -show-kernel   

 

3.

另开一个窗口(用于adb shell) morley9_UT

adb shell

cd data

mkdir bin

mkdir lib

ls

 

4.

再开一个窗口(用于adb push) morley_9

adb root

adb devices

 

把编译好的库推到 /data/lib/

adb push out/target/product/generic_x86_64/vendor/lib64/libiap2proxy.so /data/lib

编译好的bin 推到 /data/bin/

adb push out/target/product/generic_x86_64/system/bin/gtstiap2proxy /data/bin

 

 

 

5.切到 adb shell的窗口:

export LD_LIBRARY_PATH=/data/lib:/lib:/system/lib64 (配置环境)

 

./gtstiap2proxy

 

生成的.gcda文件在/data/bin/out/target/product/generic_x86_64/obj/SHARED_LIBRARIES/libiap2proxy_intermediates/proxy

 

 

6.切回之前执行adb push 的窗口

cd 到 ~/proj/morley_9/out/target/product/generic_x86_64/obj/SHARED_LIBRARIES/libiap2proxy_intermediates/proxy 下

 

adb pull /data/bin/out/target/product/generic_x86_64/obj/SHARED_LIBRARIES/libiap2proxy_intermediates/proxy ./

 

mv /proj/morley_9/out/target/product/generic_x86_64/obj/SHARED_LIBRARIES/libiap2proxy_intermediates/proxy/proxy ./

 

 

lcov -c -d ./ -o index.info

genhtml index.info -o result

 

生成的单体测试报告文件:在out/target/product/generic_x86_64/obj/SHARED_LIBRARIES/result/index.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值