2010-11-17 80 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