# 33.5.考试覆盖率考试

PostgreSQL源代码可以使用覆盖率测试工具进行编译,这样就可以检查回归测试或与代码一起运行的任何其他测试套件覆盖了代码的哪些部分。目前,在使用GCC编译时,这是受支持的,并且需要覆盖测试lcov程序。

典型的工作流如下所示:

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

然后将HTML浏览器指向覆盖率/指数。html.

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

make coverage

而不是使覆盖率html,这将产生.gcov与测试相关的每个源文件的输出文件。(进行覆盖制作coverage-html将覆盖彼此的文件,因此混合它们可能会造成混淆。)

在制作覆盖率报告之前,您可以运行几个不同的测试;执行计数将累积。如果要重置测试运行之间的执行计数,请运行:

make coverage-clean

你可以运行制作coverage-html或者进行覆盖如果您只想要代码树的一部分的覆盖率报告,请在子目录中使用命令。

采用使 distclean完成后清理。