Documentation PostgreSQL 15.15 » Administration du serveur » Tests de régression » Tests TAP

Précédent | Niveau supérieur | Suivant
33.3. Fichiers de comparaison de variants | Sommaire | 33.5. Examen de la couverture des tests

## 33.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. Ils requièrent aussi que PostgreSQL soit configuré avec l'option `--enable-tap-tests`.

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.