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
。
您可以在製作覆蓋率報告之前運行幾個不同的測試;執行計數將會累積。
如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步澄清之處,請使用此表單回報文件問題。