【问题标题】:How to use gcov with QMake for code coverage如何使用 gcov 和 QMake 进行代码覆盖
【发布时间】:2011-05-11 09:22:36
【问题描述】:

我想在使用 QTestLib 编写的单元测试中使用 gcov。通过将其添加到我的 .pro 文件中,我设法在我的目标文件中生成了一些 .gcno 文件:

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/.对象)。所有二进制文件都在 ./MyProject/build 目录中创建。

我错过了什么?

谢谢!

【问题讨论】:

    标签: c++ qt qt4 qmake gcov


    【解决方案1】:

    您是否运行过您的 QT 程序?在那之前没有覆盖数据。 另外,看看 lcov,你可以用它来获得一个漂亮的基于 html 的报告

    【讨论】:

    • 覆盖数据是正确的:现在文件中有数据。此外,我必须为 gcov 提供 -o .obj 选项,因为我的目标文件位于与源文件不同的目录中。
    猜你喜欢
    • 2012-11-03
    • 2010-12-29
    • 2012-11-22
    • 1970-01-01
    • 2021-07-01
    • 2013-09-16
    • 2016-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多