历史版本。 PostgreSQL 11 已结束支持。 2023-11-09. 请参阅 当前版本手册.
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。这些 make 命令在子目录中也可以使用。
如果没有 lcov,或者比起 HTML 报告你更喜欢文本输出,也可以运行
make coverage
来代替 make coverage-html,这样会为与测试相关的每个源文件生成.gcov 输出文件。(make coverage 和 make coverage-html 会覆盖彼此的文件,因此混用它们可能造成混淆。)
要在各次测试运行之间重置执行计数,请运行:
make coverage-clean