如何在 Clion 中查看代码覆盖率
How to see code coverage in Clion
我需要能够检查我的 C++ 代码在关键位置被单元测试覆盖的程度。我基于 Cmake 项目结构将 Clion 用作 IDE(不确定是否支持其他内容)。有什么方法可以使用 Clion 获取代码覆盖率信息?
目前 CLion 中没有这样的功能。功能请求 exists。我们也不知道 CLion 中有任何现有的代码覆盖插件。
最新的 vanilla 版本的 CLion(例如 2020.1.1)是可能的 - 不需要插件。
详情
例如,在 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")
文件/设置.../构建、执行、部署/工具链
我需要能够检查我的 C++ 代码在关键位置被单元测试覆盖的程度。我基于 Cmake 项目结构将 Clion 用作 IDE(不确定是否支持其他内容)。有什么方法可以使用 Clion 获取代码覆盖率信息?
目前 CLion 中没有这样的功能。功能请求 exists。我们也不知道 CLion 中有任何现有的代码覆盖插件。
最新的 vanilla 版本的 CLion(例如 2020.1.1)是可能的 - 不需要插件。
详情
例如,在 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")
文件/设置.../构建、执行、部署/工具链