我已经开始使用我正在构建CI管道的 Google Test 单元测试工具。是否有一个代码覆盖率工具在shell中运行,并允许我设置阈值并将其作为作业添加到管道中?
作为参考,我来自NodeJS背景并使用如下管道:
我挣扎的是第三步。在NodeJS中,我可以设置可接受的阈值,如果不满足,则作业失败。
我希望为我的C ++代码复制这个。这甚至可能吗?
答案 0 :(得分:1)
代码覆盖率与您使用的测试框架无关。
在Linux上使用C ++,您必须使用特殊标志编译软件以启用代码覆盖,例如:使用g ++,您必须设置参数--coverage
(并且还建议禁用所有优化)。
当您运行测试程序时,您将获得大量带有覆盖数据的文件。然后可以通过例如这些收集和评估这些。 lcov
。
lcov
可以使用结果创建HTML页面,但也会将覆盖率分析的总计打印到stdout
。因此,您必须构建一个运行lcov
的脚本,过滤输出并报告错误或失败,具体取决于测量的百分比。
顺便说一句,您可以设置lcov
的限制来定义覆盖范围是否足够,但这仅用于HTML输出中的背景颜色。
在每个主题上,您都可以在Stackoverflow找到多个条目,以及如何完成这些任务。