33.5. 测试覆盖率考试

可以使用覆盖率测试工具来编译 PostgreSQL 源代码,从而可以检查回归测试或随该代码运行的任何其他测试套件所覆盖的代码的哪些部分。目前在使用 GCC 进行编译时支持此功能,并且需要gcovlcov程序。

典型的工作流程如下所示:

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

然后将您的 HTML 浏览器指向coverage/index.htmlmake命令也可在子目录中使用。

如果您没有lcov或希望文本输出优于 HTML 报告,则还可以运行

make coverage

而不是make coverage-html,它将为与测试相关的每个源文件生成.gcov个输出文件。 (make coveragemake coverage-html会覆盖彼此的文件,因此混合使用它们可能会造成混淆.)

要重置测试运行之间的执行计数,请运行:

make coverage-clean