如何从终端中的谷歌测试套件获得c ++代码超额?

问题描述 投票:1回答:1

我已经开始使用我正在构建CI管道的Google Test单元测试工具。是否有一个代码覆盖率工具在shell中运行,并允许我设置阈值并作为工作添加到管道中?

作为参考,我来自NodeJS背景并使用如下管道:

  1. linter(eslint)
  2. 单元测试(茉莉花)
  3. 代码覆盖率(伊斯坦布尔覆盖率&伊斯坦布尔检查覆盖率)

我正在努力的是第三步。在NodeJS中,我可以设置可接受的阈值,如果不满足,则作业失败。

我希望为我的C ++代码复制这个。这甚至可能吗?

c++ unit-testing continuous-integration code-coverage
1个回答
1
投票

代码覆盖率与您使用的测试框架无关。

使用Linux上的C ++,您必须使用特殊标志编译软件以启用代码覆盖,例如使用g ++,你必须设置参数--coverage(并且还建议禁用所有优化)。

然后,当您运行测试程序时,您将获得大量带有覆盖数据的文件。然后可以通过例如这些收集和评估这些。 lcovlcov可以使用结果创建HTML页面,但也会将覆盖率分析的总数打印到stdout。因此,您必须构建一个运行lcov的脚本,过滤输出并根据测量的百分比报告错误或失败。

顺便说一句,您可以设置lcov的限制来定义覆盖范围是否足够,但这仅用于HTML输出中的背景颜色。

在每个主题上,您将在Stackoverflow中找到多个条目,以及如何完成这些任务。

© www.soinside.com 2019 - 2024. All rights reserved.