Перейти к основному содержимому

Проверка тестового покрытия

примечание

Эта страница переведена при помощи нейросети GigaChat.

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

Покрытие с использованием Autoconf и Make

Типичный рабочий процесс выглядит так:

./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

Типичный рабочий процесс выглядит следующим образом:

meson setup -Db_coverage=true ... OTHER OPTIONS ... builddir/
meson compile -C builddir/
meson test -C builddir/
cd builddir/
ninja coverage-html

Затем откройте файл ./meson-logs/coveragereport/index.html в браузере HTML.

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