问题描述
我的项目与 GTest 单元测试框架集成,Gcov 和 Lcov 覆盖率工具用于生成代码覆盖率报告。使用 QT 版本 5.9.1 和 MingW 编译器 (mingw530_32) 生成的覆盖率报告正常。
同一个项目已经迁移到更高版本的QT,即5.15.2,并且MingW编译器是(mingw810_32),使用这个更高版本的软件Lcov无法生成代码覆盖率报告。生成coverage.info 文件时,“TN:”字段为空。
一些项目细节:
- 该项目是在 windows 环境中构建的。
- Project .pro 文件添加了以下选项以生成 .gcda 和 .gcno 文件:
QMAKE_CXXFLAGS += -g -Wall -fprofile-arcs -ftest-coverage -O2 -ftest-coverage --coverage
QMAKE_LFLAGS += -g -Wall -fprofile-arcs -ftest-coverage -O2
LIBS += \
-lgcov
- 对于 Lcov,修改后的 lcov.perl 和 genhtml.perl 用于生成报告
问题: .gc* 文件已通过上述设置生成,但 Lcov 工具无法生成属性 .info 文件,而以前的 MingW 编译器在该文件中工作正常。
我在 QT 门户中提出了相同的问题,他们建议我使用“gcov 中间文本格式”而不是 .gcda 和 .gcno 文件。
From QT portal:
"As being developer of GCOV in GCC,I would recommend to use intermediate format (-i) of gcov tool instead of reading of *.gc{da,no} files. Thanks for understanding."
Can you please give the intermediate format a try?
I hope it helps!
我的疑问是:如何生成这些gcov的中间文件? 我用谷歌搜索了这个,他们说使用 -i 选项,但我不确定在哪里使用这个选项。 我们是否需要在 .pro 文件中添加 -i 选项(我尝试过,但命令行选项无法识别) 我们需要在运行 lcov.perl 文件时添加 -i 选项吗? (虽然试过了,但对报告没有影响)
请告诉我如何生成中间 gcov 文件以及 lcov 如何使用这些 gcov 文件生成代码覆盖率报告。
预先感谢您的支持。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)