在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