PostgreSQL 源代码可以使用覆盖率测试工具进行编译,这样就可以检查代码的哪些部分被回归测试或其他与代码一起运行的测试套件所覆盖。 目前,在使用 GCC 编译时支持此功能,并且需要 gcov
和 lcov
包。
一个典型的工作流程如下所示
./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 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
。
您可以在生成覆盖率报告之前运行几个不同的测试;执行计数将会累积。
如果您在文档中发现任何不正确、与您使用特定功能的体验不符或需要进一步澄清的内容,请使用此表单报告文档问题。