32.5. 测试覆盖检查

PostgreSQL 源代码可以使用覆盖测试指令编译,因此可以检查哪些部分的代码被回归测试或任何其他测试套件所覆盖。当前使用 GCC 编译时支持该特性,并且需要gcovlcov程序。

一个典型的工作流程看起来是:

./configure --enable-coverage ... OTHER OPTIONS ...
make
make check # 或其他测试套件
make coverage-html

然后将你的 HTML 浏览器指向coverage/index.htmlmake命令在子目录中也能工作。

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

make coverage

来取代make coverage-html,它将为每个与测试相关的源文件产生.gcov输出文件(make coveragemake coverage-html将覆盖彼此的文件,所以把它们混合在一起可能会导致混乱)。

要在多次测试运行之间重置执行计数,运行:

make coverage-clean