31.4. TAP-тесты #

Различные тесты, особенно тесты клиентских программ в src/bin, используют инструменты Perl TAP и запускаются программой тестирования Perl prove. Вы можете передать аргументы командной строки команде prove, установив для make переменную PROVE_FLAGS, например:

make -C src/bin check PROVE_FLAGS='--timer'

За дополнительными сведениями обратитесь к странице руководства по prove.

В переменной PROVE_TESTS, которую воспринимает make, может быть указан список разделённых пробелами путей, заданных относительно расположения Makefile, вызывающего prove. Этот список определяет подмножество тестов для выполнения, вместо всех по умолчанию (t/*.pl). Например:

make check PROVE_TESTS='t/001_test1.pl t/003_test3.pl'

TAP-тесты требуют модуля Perl IPC::Run. Этот модуль можно найти в CPAN или в пакете операционной системы. Для их выполнения также требуется сконфигурировать PostgreSQL с параметром --enable-tap-tests.

Вообще говоря, TAP-тесты при выполнении make installcheck тестируют исполняемые файлы в ранее созданном дереве инсталляции, а при make check строят локальное дерево инсталляции из текущего исходного кода. В любом случае для тестирования инициализируется локальный экземпляр (каталог данных), и в нём временно запускается сервер. Для некоторых тестов могут запускаться и несколько серверов. Таким образом, эти тесты могут быть весьма ресурсоёмкими.

Важно понимать, что TAP-тесты запускают тестовый сервер (серверы), даже когда вы даёте команду make installcheck; этим они отличаются от обычных тестов, не в инфраструктуре TAP, которые в таком режимы рассчитаны на использование уже работающего сервера. В некоторых подкаталогах в дереве PostgreSQL TAP-тесты соседствуют с традиционными, что означает, что в результате make installcheck будут получены смешанные результаты от временных серверов и от уже работающего тестового сервера.

31.4.1. Переменные окружения #

Каталогам данных присваиваются имена в соответствии с именем файла теста; каталоги сохраняются, если тест не пройден. Если задана переменная окружения PG_TEST_NOCLEAN, каталоги данных сохраняются вне зависимости от статуса теста. Например, каталог данных сохраняется вне зависимости от результатов тестов во время выполнения тестов pg_dump:

PG_TEST_NOCLEAN=1 make -C src/bin/pg_dump check

Эта переменная окружения также предотвращает удаление временных каталогов теста.

В сценариях тестов многие операции используют тайм-аут в 180 секунд, и на медленных узлах такой тайм-аут может наступать под нагрузкой. Во избежание этого задайте более высокое значение для переменной окружения PG_TEST_TIMEOUT_DEFAULT.

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