↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4

33.5. 测试覆盖率检查 #

可以在编译 PostgreSQL 源代码时加入覆盖率测试插桩,从而检查回归测试或任何其他与该代码一起运行的测试套件覆盖了代码的哪些部分。目前,这只在使用 GCC 编译时受支持,并且需要 gcov 和 lcov 程序。

一个典型的工作流程如下:

./configure --enable-coverage ... OTHER OPTIONS ...
make
make check # or other test suite
make coverage-html

然后将 HTML 浏览器指向 coverage/index.html。

如果没有 lcov,或者你更喜欢文本输出而不是 HTML 报告,可以运行:

make coverage

来代替 make coverage-html,这样会为与测试相关的每个源文件生成.gcov 输出文件。(make coverage 和 make coverage-html 会互相覆盖对方的文件,因此混用它们可能会让人困惑。)

在生成覆盖率报告前,可以先运行若干不同的测试;执行计数会累计。如果想在多次测试运行之间重置执行计数,请运行:

make coverage-clean

如果只想获得代码树某一部分的覆盖率报告,可以在子目录中运行 make coverage-html 或 make coverage 命令。

完成后,使用 make distclean 进行清理。

报告文档问题

阅读 上游文档. 通过 PostgreSQL 文档反馈表单.