【问题标题】:How to see code coverage in Clion如何在 Clion 中查看代码覆盖率
【发布时间】:2017-05-02 06:40:55
【问题描述】:
我需要能够检查我的 C++ 代码在关键位置被单元测试覆盖的程度。我使用 Clion 作为基于 Cmake 项目结构的 IDE(不确定是否支持其他内容)。有什么方法可以通过 Clion 获取代码覆盖率信息?
【问题讨论】:
标签:
c++
unit-testing
c++11
code-coverage
clion
【解决方案1】:
目前 CLion 中没有这样的功能。功能请求exists。此外,我们不知道任何现有的 CLion 代码覆盖插件。
【解决方案2】:
最新 vanilla 版本的 CLion(例如 2020.1.1)可以实现 - 无需插件。
详情
见official doc。
例如,在 Linux (Fedora 31) 上:
-
根据编译器,确保 CLion 选择正确的工具链:
即使CMakeLists.txt 为构建设置了编译器,它也可能
不同意 IDE 选择的显示覆盖率的选项(有待改进)。
-
显然,在 IDE 之外安装必要的工具并确保它们的版本匹配:
sudo dnf install clang llvm # ...
sudo dnf update
gcc
# CMakeLists.txt
set(CMAKE_C_COMPILER cc)
set(CMAKE_CXX_COMPILER c++)
set(COMPILE_FLAGS "--coverage")
set(CMAKE_EXE_LINKER_FLAGS "--coverage")
文件/设置.../构建、执行、部署/工具链
叮当
# CMakeLists.txt
set(CMAKE_C_COMPILER clang)
set(CMAKE_CXX_COMPILER clang++)
set(COMPILE_FLAGS "-fprofile-instr-generate -fcoverage-mapping")
set(CMAKE_EXE_LINKER_FLAGS "-fprofile-instr-generate")
文件/设置.../构建、执行、部署/工具链