2010-11-17 81 views
6

我想用我的單元測試使用gcov編寫使用QTestLib。我已成功地生成沿着我的對象文件的一些.gcno文件中加入這個我.pro文件:如何使用gcov與QMake進行代碼覆蓋

QMAKE_CXXFLAGS += -fprofile-arcs -ftest-coverage -O0 

但是,當我運行:

gcov main.cpp.gcno 

我有一大堆.gcov文件

-: 0:Source:main.cpp 
-: 0:Graph:main.gcno 
-: 0:Data:- 
-: 0:Runs:0 
-: 0:Programs:0 
-: 1:/*EOF*/ 
-: 2:/*EOF*/ 
-: 3:/*EOF*/ 
-: 4:/*EOF*/ 
-: 5:/*EOF*/ 
-: 6:/*EOF*/ 
-: 7:/*EOF*/ 
-: 8:/*EOF*/ 
-: 9:/*EOF*/ 
-: 10:/*EOF*/ 
-: 11:/*EOF*/ 
-: 12:/*EOF*/ 
-: 13:/*EOF*/ 
-: 14:/*EOF*/ 
#####: 15:/*EOF*/ 
-: 16:/*EOF*/ 
#####: 17:/*EOF*/ 
-: 18:/*EOF*/ 
-: 19:/*EOF*/ 
#####: 20:/*EOF*/ 
-: 21:/*EOF*/ 
-: 22:/*EOF*/ 
-: 23:/*EOF*/ 
-: 24:/*EOF*/ 
#####: 25:/*EOF*/ 
#####: 26:/*EOF*/ 
-: 27:/*EOF*/ 
-: 28:/*EOF*/ 
-: 29:/*EOF*/ 
#####: 30:/*EOF*/ 

我的源文件正在./MyProject/test/src目錄:非有用的內容(沒有像我在教程看到在網絡上)產生並且我所有的目標文件都位於src下的.obj目錄中(即:.MyProject/test/src/.obj)。所有的二進制文件都在./MyProject/build目錄中創建。

我錯過了什麼?

謝謝!

回答

4

您是否運行過QT程序?在此之前,沒有覆蓋數據。 另外,看看lcov,你可以用它來獲得一個很好的基於HTML的報告

+0

你是正確的覆蓋率數據:現在有文件中的數據。另外,我必須爲gcov提供選項-o .obj,因爲我的對象文件位於不同於我的源的目錄中。 – 2010-11-17 17:24:44