PostgreSQL 源代码可以通过覆盖率测试工具进行编译,从而可以检查哪些
代码部分被回归测试或任何其他测试套件覆盖。目前,这在使用 GCC 编译时
是支持的,并且需要安装 gcov
和 lcov
软件包。
一个典型的工作流程如下:
./configure --enable-coverage ... OTHER OPTIONS ... make make check # 或其他测试套件 make coverage-html
然后在你的HTML浏览器中打开
coverage/index.html
。
如果您没有lcov
,或者更喜欢文本输出而不是HTML报告,
您可以运行
make coverage
来代替make coverage-html
,这将为每个与测试相关的源文件
生成.gcov
输出文件。(make coverage
和
make coverage-html
会覆盖彼此的文件,因此混用可能会
令人困惑。)
您可以在生成覆盖率报告之前运行几种不同的测试; 执行计数将会累积。如果您希望在测试运行之间重置执行计数,请运行:
make coverage-clean
您可以在子目录中运行make coverage-html
或make
coverage
命令,如果您只想要代码树的一部分的覆盖率报告。
使用make distclean
来清理完成后的内容。
一个典型的工作流程如下所示:
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
。
在生成覆盖率报告之前,您可以运行几种不同的测试;执行计数将会累积。