如何将gcov与QMake一起用于代码覆盖

Eti*_*ard 6 c++ qt qmake qt4 gcov

我想使用gcov和我使用QTestLib编写的单元测试.我已经设法在我的目标文件中生成一些.gcno文件,方法是将它添加到我的.pro文件中:

QMAKE_CXXFLAGS += -fprofile-arcs -ftest-coverage -O0
Run Code Online (Sandbox Code Playgroud)

但是,当我跑:

gcov main.cpp.gcno
Run Code Online (Sandbox Code Playgroud)

我得到了一堆用无用内容生成的.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*/
Run Code Online (Sandbox Code Playgroud)

我的源文件在./MyProject/test/src目录下,所有我的目标文件都在src下面的.obj目录下(即:.MyProject/test/src/.obj).所有二进制文件都在./MyProject/build目录中创建.

我错过了什么?

谢谢!

Chr*_*ard 4

你运行过你的QT程序吗?在此之前还没有覆盖数据。另外,看看 lcov,您可以使用它来获取所有内容的基于 html 的漂亮报告