PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 17.1 » Administration du serveur » Tests de régression » Examen de la couverture des tests

31.5. Examen de la couverture des tests #

Le code source de PostgreSQL peut être compilé avec des informations supplémentaire sur la couverture des tests, pour qu'il devienne possible d'examiner les parties du code couvertes par les tests de régression ou par toute suite de tests exécutée avec le code. Cette fonctionnalité est supportée en compilant avec GCC et nécessite les programmes gcov et lcov.

31.5.1. Couverture avec Autoconf et Make #

La suite typique de commandes ressemble à ceci :

./configure --enable-coverage ... OTHER OPTIONS ...
make
make check # or other test suite
make coverage-html
       

Puis pointez votre navigateur HTML vers coverage/index.html.

Si vous n'avez pas lcov ou préférez une sortie texte par rapport à un rapport HTML, vous pouvez exécuter

make coverage
       

au lieu de make coverage-html, qui produira des fichiers de sortie .gcov pour chaque fichier source concerné par le test. (make coverage et make coverage-html surchargeront les fichiers de l'autre, donc les mixer pourrait apporter de la confusion.)

Vous pouvez exécuter différents tests avant de faire la rapport de couverture ; le nombre d'exécutions va s'accumuler. Si vous voulez réinitialiser le nombre d'exécutions entre vos différents tests, exécutez :

make coverage-clean
       

Vous pouvez exécuter la commande make coverage-html ou make coverage dans un sous-répertoire si vous voulez un rapport de couverture pour seulement une partie du code.

Utilisez make distclean pour tout nettoyer une fois terminé.

31.5.2. Couverture avec Meson #

Une procédure typique ressemble à ceci :

meson setup -Db_coverage=true ... OTHER OPTIONS ... builddir/
meson compile -C builddir/
meson test -C builddir/
cd builddir/
ninja coverage-html

Puis pointez votre navigateur sur ./meson-logs/coveragereport/index.html.

Vous pouvez exécuter différents tests avant de créer le rapport de couverture ; le nombre d'exécution s'accumulera.