我如何从终端的 google 测试套件中获取 C++ 代码超量?
how can i get c++ code overage from google test suite in terminal?
我已经开始使用 Google Test 单元测试工具,我正在将其构建到 CI 管道中。是否有在 shell 中运行并允许我设置阈值并将其作为作业添加到管道中的代码覆盖工具?
作为参考,我来自 NodeJS 背景并使用如下管道:
- linter(eslint)
- 单元测试(茉莉花)
- 代码覆盖率(伊斯坦布尔覆盖率 && 伊斯坦布尔检查覆盖率)
我正在努力解决的问题是第三步。在 NodeJS 中,我可以设置可接受的阈值,如果不满足则作业失败。
我希望为我的 C++ 代码复制这个。这可能吗?
代码覆盖率未链接到您使用的测试框架。
在 Linux 上使用 C++,您必须使用特殊标志编译软件以启用代码覆盖,例如对于 g++,您必须设置参数 --coverage
(并且还建议禁用所有优化)。
然后 运行 测试程序时,您会得到很多包含覆盖率数据的文件。然后可以通过例如收集和评估这些。 lcov
.
lcov
可以用结果创建 HTML 页,但也会将覆盖率分析的总计打印到 stdout
。因此,您必须构建一个 运行s lcov
的脚本,根据测量的百分比过滤输出并报告错误或失败。
顺便说一句,您可以为 lcov
设置限制以定义覆盖率何时足够,但这仅用于 HTML 输出中的背景颜色。
关于这些主题中的每一个,您都可以在 Whosebug 上找到多个条目,以及如何完成这些任务。
我已经开始使用 Google Test 单元测试工具,我正在将其构建到 CI 管道中。是否有在 shell 中运行并允许我设置阈值并将其作为作业添加到管道中的代码覆盖工具?
作为参考,我来自 NodeJS 背景并使用如下管道:
- linter(eslint)
- 单元测试(茉莉花)
- 代码覆盖率(伊斯坦布尔覆盖率 && 伊斯坦布尔检查覆盖率)
我正在努力解决的问题是第三步。在 NodeJS 中,我可以设置可接受的阈值,如果不满足则作业失败。
我希望为我的 C++ 代码复制这个。这可能吗?
代码覆盖率未链接到您使用的测试框架。
在 Linux 上使用 C++,您必须使用特殊标志编译软件以启用代码覆盖,例如对于 g++,您必须设置参数 --coverage
(并且还建议禁用所有优化)。
然后 运行 测试程序时,您会得到很多包含覆盖率数据的文件。然后可以通过例如收集和评估这些。 lcov
.
lcov
可以用结果创建 HTML 页,但也会将覆盖率分析的总计打印到 stdout
。因此,您必须构建一个 运行s lcov
的脚本,根据测量的百分比过滤输出并报告错误或失败。
顺便说一句,您可以为 lcov
设置限制以定义覆盖率何时足够,但这仅用于 HTML 输出中的背景颜色。
关于这些主题中的每一个,您都可以在 Whosebug 上找到多个条目,以及如何完成这些任务。