31.5. Определение покрытия кода тестами #

Исходный код PostgreSQL может быть скомпилирован с инструментарием определения покрытия, чтобы узнать, какие части кода покрываются регрессионными тестами или другим пакетом тестов, выполняемых в дереве кода. В настоящее время эта возможность поддерживается в случае использования компилятора GCC и требует наличия пакетов gcov и lcov.

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 coverage и make coverage-html перезаписывают файлы друг друга, поэтому при одновременном их использовании может возникнуть путаница.)

Вы можете запустить несколько разных тестов перед проверкой покрытия — счётчики выполнений будут накапливать значения. Чтобы счётчики выполнений сбрасывались между тестами, запустите:

make coverage-clean

Если вам нужно собрать покрытие только для части дерева исходного кода, вы можете запустить команду make coverage-html или make 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.

Вы можете запустить несколько разных тестов перед проверкой покрытия — счётчики выполнений будут накапливать значения.

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy