31.4. Pruebas TAP #

31.4.1. Variables de entorno

Varias pruebas, en particular las pruebas de programas cliente bajo src/bin, utilizan las herramientas TAP de Perl y se ejecutan utilizando el programa de prueba de Perl prove. Puedes pasar opciones de línea de comandos a prove estableciendo la variable de make PROVE_FLAGS, por ejemplo:

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

Consulta la página de manual de prove para más información.

La variable de make PROVE_TESTS se puede utilizar para definir una lista separada por espacios en blanco de rutas relativas al Makefile que invoca a prove para ejecutar el subconjunto de pruebas especificado en lugar del valor por defecto t/*.pl. Por ejemplo:

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

Las pruebas TAP requieren el módulo Perl IPC::Run. Este módulo está disponible en CPAN o como un paquete del sistema operativo. También requieren que PostgreSQL esté configurado con la opción --enable-tap-tests.

En términos generales, las pruebas TAP probarán los ejecutables en un árbol de instalación previamente instalado si dices make installcheck, o compilarán un nuevo árbol de instalación local a partir de las fuentes actuales si dices make check. En cualquier caso, inicializarán una instancia local (directorio de datos) y ejecutarán transitoriamente un servidor en ella. Algunas de estas pruebas ejecutan más de un servidor. Por lo tanto, estas pruebas pueden ser bastante intensivas en recursos.

Es importante tener en cuenta que las pruebas TAP iniciarán servidores de prueba incluso cuando digas make installcheck; esto es diferente de la infraestructura de pruebas tradicional que no es TAP, la cual espera utilizar un servidor de prueba ya en ejecución en ese caso. Algunos subdirectorios de PostgreSQL contienen tanto pruebas de estilo tradicional como de estilo TAP, lo que significa que make installcheck producirá una mezcla de resultados de servidores temporales y del servidor de prueba ya en ejecución.

31.4.1. Variables de entorno #

Los directorios de datos se nombran de acuerdo con el nombre del archivo de prueba y se conservarán si una prueba falla. Si la variable de entorno PG_TEST_NOCLEAN está establecida, los directorios de datos se conservarán independientemente del estado de la prueba. Por ejemplo, para conservar el directorio de datos independientemente de los resultados de las pruebas al ejecutar las pruebas de pg_dump:

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

Esta variable de entorno también evita que se eliminen los directorios temporales de la prueba.

Muchas operaciones en las suites de pruebas utilizan un tiempo de espera (timeout) de 180 segundos, lo que en servidores lentos puede llevar a tiempos de espera provocados por la carga. Establecer la variable de entorno PG_TEST_TIMEOUT_DEFAULT en un número mayor cambiará el valor predeterminado para evitar esto.