在CMake的测试配置中,我添加标记生成代码覆盖率代码覆盖率warrnings垃圾邮件输出
IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR
"${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage")
SET(CMAKE_C_FLAGS "-g -O0 -fprofile-arcs -ftest-coverage ")
endif()
我每次运行测试 - 我输出的垃圾邮件与信息:
分析:/ xxxx/xxxxxj/projects/build-xxxxx-CLang-Debug/tests/CMakeFiles/xxxxxxxxxxxxxt_ut.dir/tests/gui/ship_design/ut_ship_stats_header.cpp.gcda:无法合并之前的GCDA文件:计数器数目不匹配(14)
分析: /xxxx/xxxxxx/projects/build-xxxxxxxxxxxxxxx-CLang-Debug/tests/CMakeFiles/xxxxxxxxxxxxxxx_ut.dir/tests/gui/ship_design/ut_ship_stats_header.cpp.gcda: 不能合并以前GCDA文件:腐败弧标签(0x2b8e100f)
分析: /xxxx/xxxxxx/projects/build-xxxxxxxxxxxxxxx-CLang-Debug/tests/CMakeFiles/xxxxxxxxxxxxxxx_ut.dir/tests/ut_generate_hex_path.cpp.gcda: 不能合并以前GCDA文件:腐败的圆弧标记(0x65646f6e)
我不必这么说,这让阅读测试运行结果至少困难重重。当我删除以前生成的所有gcda文件时,上述问题消失。所以有两种可能的解决方案。 。
- 我可能会错过代码覆盖率数据(的一些有价值的配置即呼叫LCOV --zerocounters
FIND_PROGRAM(LCOV_PATH LCOV)
命令$ {} LCOV_PATH -z - -directory $ {PROJECT_BINARY_DIR}}
- I N在提交测试运行之前添加自定义目标,删除所有gcda文件。
我该如何解决这个问题?
清理你的* .gcda文件编译你的源代码 – nega
报价“上面的问题消失了,当我删除以前生成的所有文件gcda”之前。然而,问题通过另一次链接和测试运行重演。问题是 - 如何修改CMake或其他系统来使其自动化。 – T4ng10r