参考 https://github.com/google/googletest
新建对应的测试代码(略)
CMakeLists中添加相关编译选项
- SET(GCC_COVERAGE_COMPILE_FLAGS "-g -O0 -coverage -fprofile-arcs -ftest-coverage")
- SET(GCC_COVERAGE_LINK_FLAGS "-coverage -lgcov")
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}")
- SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}")
-
- target_link_libraries(test gcov)
编译后会生成对应的 .gcno 文件
执行后生成对应的 .gcda 文件
仅在Linux使用,Windows环境可以用交叉编译,不过麻烦点。
使用 apt安装:
sudo apt-get install lcov
生成对应的覆盖率测试报告:
- lcov --capture --directory 代码目录 --output-file coverage.info
- genhtml coverage.info
Python书写,版本高的功能全一点。
使用 apt安装:
sudo apt-get install gcovr
生成对应的覆盖率测试报告:
gcovr -r ../ --html --html-details -o index.html