Postgresql 中文操作指南

33.5. Test Coverage Examination #

PostgreSQL 源代码可以用覆盖率测试工具编译,这样就可以检查代码的哪些部分被回归测试或与代码一起运行的任何其他测试套件覆盖。在使用 GCC 编译时当前支持此功能,并且它需要 gcovlcov 软件包。

33.5.1. Coverage with Autoconf and Make #

一个典型的流程如下:

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

然后将您的 HTML 浏览器指向 coverage/index.html

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

make coverage

而不是 make coverage-html,这将为与测试相关的所有源文件生成 .gcov 输出文件。(make coveragemake coverage-html 将覆盖彼此的文件,因此混合它们可能会令人困惑。)

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

make coverage-clean

如果您只需要代码树的一部分的覆盖报告,则可以在子目录中运行 make coverage-htmlmake coverage 命令。

完成后使用 make distclean 清理。

33.5.2. Coverage with Meson #

一个典型的流程如下:

meson setup -Db_coverage=true ... OTHER OPTIONS ... builddir/
meson compile -C builddir/
meson test -C builddir/
cd builddir/
ninja coverage-html

然后将您的 HTML 浏览器指向 ./meson-logs/coveragereport/index.html

在制作覆盖报告之前,您可以运行几个不同的测试;执行计数将累积。