基于NDK配置工程gtest,覆盖率

本文介绍如何使用Google Test框架进行C++单元测试,并通过CMake配置实现代码覆盖率报告的生成,涵盖编译设置、链接选项及所需软件安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编译脚本

set(GOOGLETEST_ROOT $ENV{ANDROID_NDK}/sources/third_party/googletest)
add_library(gtest STATIC ${GOOGLETEST_ROOT}/src/gtest_main.cc ${GOOGLETEST_ROOT}/src/gtest-all.cc)
target_include_directories(gtest PRIVATE ${GOOGLETEST_ROOT})
include_directories(gtest PUBLIC ${GOOGLETEST_ROOT}/include)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pedantic -Wno-variadic-macros")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error -DLOG_TAG=\"CV_ALGORITHM\"")
# 下面两个二者选其一,一个是可执行文件,一个是链接库
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --coverage")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}  --coverage")

include_directories(include)

aux_source_directory(. ALL_SRC_FILE)
add_executable(TestAlgorithm ${ALL_SRC_FILE})

target_link_libraries(TestAlgorithm 
                      gtest)

编译环境

adb shell "export GCOV_PREFIX=/system/bin/personal;

执行环境

# 执行环境安装下面两款软件
sudo apt-get install llvm
sudo apt-get install clang

# 在/usr/bin下添加脚本llvm-gcov.sh, 内容如下
#!/bin/bash
exec llvm-cov gcov "$@"

# 编译环境下执行下面命令
chmod +x llvm-gcov.sh

生成覆盖率报表

# 将用例执行后生成的gcda文件adb pull回本地,放在与编译时生成的gcno文件放在同一目录下

# 项目build目录下执行下面命令
lcov --directory .  --gcov-tool llvm-gcov.sh --capture --output-file test_result.info
genhtml test_result.info -o Report

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值