PostgreSQL 源代码可以使用覆盖测试指令编译,因此可以检查哪些部分的代码被回归测试或任何其他测试套件所覆盖。当前使用 GCC 编译时支持该特性,并且需要gcov
和lcov
程序。
一个典型的工作流程看起来是:
./configure --enable-coverage ... OTHER OPTIONS ... make make check # 或其他测试套件 make coverage-html
然后将你的 HTML 浏览器指向coverage/index.html
。make
命令在子目录中也能工作。
如果没有lcov
或者更喜欢文本输出而不是HTML报告,还可以运行
make coverage
来取代make coverage-html
,它将为每个与测试相关的源文件产生.gcov
输出文件(make coverage
和make
coverage-html
将覆盖彼此的文件,所以把它们混合在一起可能会导致混乱)。
要在多次测试运行之间重置执行计数,运行:
make coverage-clean