9.3 9.4 9.5 9.6 10 11 12 13 14 15 Current(16) 17
问题报告 纠错本页面

31.5. 测试覆盖检查 #

31.5.1. 使用Autoconf和Make进行覆盖率分析
31.5.2. 使用Meson进行覆盖率分析

PostgreSQL 源代码可以通过覆盖率测试工具进行编译,从而可以检查哪些 代码部分被回归测试或任何其他测试套件覆盖。目前,这在使用 GCC 编译时 是支持的,并且需要安装 gcovlcov 软件包。

31.5.1. 使用Autoconf和Make进行覆盖率分析 #

一个典型的工作流程如下:

./configure --enable-coverage ... OTHER OPTIONS ...
make
make check # 或其他测试套件
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来清理完成后的内容。

31.5.2. 使用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

在生成覆盖率报告之前,您可以运行几种不同的测试;执行计数将会累积。