我試圖收集在Ubuntu上有C++和c代碼的項目的代碼覆蓋率。gcov爲c生成空覆蓋
我使用'-fprofile-arcs'和'-ftest-coverage'值作爲CXXFLAGS和CFLAGS; '-lgcov'作爲LINKFLAGS。
常見的C項目結構是:
c_code\
src
unit_tests
src包含靜態庫的來源。
unit_tests dir包含用googletest框架e編寫的測試。 G。種類測試
TEST_F(test_case_name, test_name) {
some_gtest_assertions;
}
構建googletest二進制文件之後,應該包含要在其中進行測試的靜態庫。
構建並運行項目二進制文件會導致生成* .gcno和* .gcda文件。但是我的C覆蓋結果是空的(C++生成的很好)。
LCOV命令有folloiwng格式:
lcov --capture --directory my_c_gcda_location --output-file c_coverage.info
LCOV的日誌顯示了C-相關gcda文件如下:
的gcov沒有爲「my_c_gcda_location創建任何文件/ * gcda 「`
也有一種錯誤:
* .gcda:與筆記戳不匹配文件
我應該指定一些額外的參數或進行一些額外的動作來獲得對C的覆蓋效果?或者這些問題的原因是什麼?
您必須提供'最低可驗證代碼',顯示'my_c_gcda_location'是如何處理/創建文件的,或者除了猜測外沒有人可以做任何事情。沒有明確問題陳述的問題對其他讀者無益。請參閱:[**如何創建一個最小,完整和可驗證的示例**](http://stackoverflow.com/help/mcve)。「 – 2014-12-03 16:11:59