1.要求

编译工具:选择Cmake,单元测试使用Gtest

2.生成gtest测试报告

gtest本身仅能输出xml或者json格式的测试报告,所以采用gtest2html地三方工具输出html的报告

环境:gtest已经可以使用

(1)clone gtest2html

git clone https://github.com/adarmalik/gtest2html.git

(2)运行

./unitest_program --gtest_output="xml:output.xml"
xsltproc ${WORKSPACE}/gtest2html.xslt "xml:output.xml" >out.html

3.生成gtest覆盖率报告

使用gcc的lcov
(1)ubuntu环境直接安装lcov

sudo apt-get install -y lcov

(2)CMake添加编译以及链接选项、库

target_link_libraries(XXX PRIVATE gcov)
set_target_properties(xxxx
    PROPERTIES
    COMPILE_FLAGS "-fprofile-arcs -ftest-coverage -O0 -g"
    LINK_FLAGS " -lgcov --coverage"
)

(3)运行

./unitest_program
lcov -c -o tests.info -d "build/test/CMakeFiles/tests.dir"
lcov --extract tests.info  "*/src/tests/*" "*/include/tests/*" -o tests.info 
genhtml tests.info  -o cover_report/

lcov 1.10版本以上默认关闭branch覆盖率统计,若要打开,可以参考:使用命令行的方式打开:使用LCOV命令生成覆盖率,或者修改lcov配置文件的方式:lcov使用方法

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐