文章目录

  • 1.要求
  • 2.生成gtest测试报告
  • 3.生成gtest覆盖率报告

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/