【发布时间】:2010-12-19 14:29:57
【问题描述】:
我正在尝试获取我为 Arora 浏览器编写的组件的代码覆盖率,该组件是使用 C++ 和 Qt 框架编写的。
我无法使用 gcov 程序,无论是在 Gnu/Linux 还是 Mac Os X 下。我尝试了我在 Internet 上可以找到的所有内容,还强制自动编辑由 .pro 文件生成的 Makefile。
有人可以帮帮我吗?这是我非常简单的专业文件:
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .
LIBS += -lgcov
QMAKE_CXXFLAGS += -g -fprofile-arcs -ftest-coverage -O0
QMAKE_LDFLAGS += -g -fprofile-arcs -ftest-coverage -O0
include(../autotests.pri)
# Input
SOURCES += tst_quickview.cpp
HEADERS +=
Makefile 确实包含标志。我还尝试了--coverage 选项。但什么也没有发生。当我运行可执行文件时,不会生成任何 gcov 文件。没有错误,也没有警告。我正在使用 QTestLib 框架。
谢谢
【问题讨论】:
-
你能让 gcov 工作吗?你能否让它在一个独立于 Qt 的简单测试程序上运行,例如只使用命令行?
-
我的意思是,简单的测试程序有效,而不是我正在研究的那个
-
我成功地将 gcov/lcov 与 QTestLib 结合使用。您的 .pro 文件对我来说看起来不错 --- 关键部分在那里(
-fprofile-arcs -ftest-coverage和-lgcov)。您的测试代码是否正常退出?测量数据只写在atexit()函数中。 -
项目测试文件实际使用QTEST_MAIN(tst_QuickView)宏来生成main函数。这可能是问题吗?
标签: unit-testing qt qt4 code-coverage