如何从终端中的谷歌测试套件获得c ++代码超额?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从终端中的谷歌测试套件获得c ++代码超额?相关的知识,希望对你有一定的参考价值。
我已经开始使用我正在构建CI管道的Google Test单元测试工具。是否有一个代码覆盖率工具在shell中运行,并允许我设置阈值并作为工作添加到管道中?
作为参考,我来自NodeJS背景并使用如下管道:
- linter(eslint)
- 单元测试(茉莉花)
- 代码覆盖率(伊斯坦布尔覆盖率&伊斯坦布尔检查覆盖率)
我正在努力的是第三步。在NodeJS中,我可以设置可接受的阈值,如果不满足,则作业失败。
我希望为我的C ++代码复制这个。这甚至可能吗?
答案
代码覆盖率与您使用的测试框架无关。
使用Linux上的C ++,您必须使用特殊标志编译软件以启用代码覆盖,例如使用g ++,你必须设置参数--coverage
(并且还建议禁用所有优化)。
然后,当您运行测试程序时,您将获得大量带有覆盖数据的文件。然后可以通过例如这些收集和评估这些。 lcov
。
lcov
可以使用结果创建html页面,但也会将覆盖率分析的总数打印到stdout
。因此,您必须构建一个运行lcov
的脚本,过滤输出并根据测量的百分比报告错误或失败。
顺便说一句,您可以设置lcov
的限制来定义覆盖范围是否足够,但这仅用于HTML输出中的背景颜色。
在每个主题上,您将在Stackoverflow中找到多个条目,以及如何完成这些任务。
以上是关于如何从终端中的谷歌测试套件获得c ++代码超额?的主要内容,如果未能解决你的问题,请参考以下文章