Проверка тестового покрытия
Эта страница переведена при помощи нейросети 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.
Можно запустить несколько различных тестов перед созданием отчета о покрытии; счетчики выполнений будут накапливаться.