首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用gcovr工具提高分支覆盖率

如何使用gcovr工具提高分支覆盖率
EN

Stack Overflow用户
提问于 2020-07-16 22:09:09
回答 1查看 579关注 0票数 0

我已经使用C++编写了一个示例程序。我已经使用GUNIT框架编写了相应的单元测试。我能够成功地对每个源文件执行generate.gcda和.gcno文件。我在生成.gcno文件的文件夹中使用了(gcov -b -l -p -c *.gcno)命令。我使用的是gcov 7.5.0。当我运行这个命令时,我看到它给了我a)以百分比表示的covergae行,b)以百分比表示的分支,c)至少取一次。接下来,我运行(gcovr --html -o Filename.html -r /path_to_C_sourceFiles/ .)命令来生成此数据的html输出。在html文件中,我看到分支covergae数据是从gcov生成的至少提取一次的数据中提取出来的。为什么html不从gcov数据中提取分支覆盖百分比并将其显示为分支覆盖率。与分支百分比相比,gcov工具提供的数据至少是一个减少的数字。这个至少拍一次的是什么?

EN

回答 1

Stack Overflow用户

发布于 2020-07-17 00:37:34

如果一个分支至少被取了一次,则该分支被覆盖。如果一个分支被多次执行,它就不会被更多地覆盖。因此,gcovr主要考虑行和分支的覆盖/未覆盖状态,而GCC的gcov工具显示执行计数和分支概率。

可以访问分支概率可能会很有用。不是在测试的上下文中,而是针对低级代码优化。如果您需要这些数据,您可能希望自己查看gcov文件。

但是,下一版本的gcovr (预计是gcovr 4.3)将在HTML报告中显示分支计数(而不是百分比):

对于包含分支覆盖数据的每一行,都会有一个弹出窗口显示完整的分支计数。

如果您安装了gcovr的开发版本,则可以立即使用此功能:

代码语言:javascript
运行
复制
pip install git+https://github.com/gcovr/gcovr.git
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62936628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档