PostgreSQLLa base de données la plus sophistiquée au monde.

Version anglaise

32.4. Tests TAP

Différents tests, en particulier les tests des programmes clients sous src/bin, utilisent les outils TAP de Perl et sont exécutés en utilisant le programme de tests Perl appelé prove. Les programmes de test clients situés dans src/bin utilisent les outils Perl TAP et sont exécutés par prove. Il est possible de passer des options en ligne de commande à prove en positionnant la variable make PROVE_FLAGS, par exemple :

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

Voir la page de manuel de prove pour plus d'information.

La variable PROVE_TESTS de la commande make peut être utilisée pour définir une liste de chemins relatifs séparés par des espaces blancs, vers le Makefile appelant prove pour lancer le sous-ensemble spécifié de tests à la place de la valeur par défaut t/*.pl. Par exemple :

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

Les tests TAP nécessitent le module IPC::Run. Ce module est disponible depuis CPAN ou un paquet du système d'exploitation.

En général, les tests TAP testeront les exécutables dans une arborescence d'installation préalable si vous exécutez make installcheck, ou construirons une nouvelle arborescence d'installation locale à partir des sources courants si vous dites make check. Dans tous les cas, ils initialiseront une instance locale (répertoire de données) et exécuteront temporairement un serveur dessus. Certains de ces tests s'exécutent avec plus d'un serveur. De ce fait, ces tests peuvent être très consommateurs en ressource.

Il est important de réaliser que les tests TAP démarreront les serveurs de test même quand vous utilisez make installcheck ; ceci est contraire à l'infrastructure traditionnelle de tests (donc non TAP) qui s'attend à utiliser un serveur de tests déjà en cours d'exécution. Certains sous-répertoires de PostgreSQL contiennent à la fois des tests dans le style traditionnel et d'autres dans le style TAP, ceci signifiant que make installcheck produira un mix de résultats provenant de serveurs temporaires et d'un serveur de tests déjà en cours d'exécution.