Coverage.py permet d'exclure du code de la mesure via des commentaires dans les fichiers Python. Contrairement à d'autres outils, il utilise des expressions régulières personnalisables pour ces exclusions. Cette approche basée sur les regex s'est avérée étonnamment puissante, offrant une flexibilité au-delà des simples marqueurs de commentaire. Les lignes correspondant à ces regex, ainsi que leurs instructions et blocs multi-lignes, sont exclues des vérifications de couverture. Initialement conçu pour les pragmas de base, ce système a également facilité les exclusions sans pragma, comme l'ignorance automatique de toutes les méthodes __repr__. Le pouvoir du système a été amplifié par des plug-ins tiers tels que covdefaults et coverage-conditional-plugin. Une amélioration significative a permis aux regex de correspondre à des modèles multi-lignes, révolutionnant les capacités d'exclusion. Ce changement a permis des fonctionnalités comme l'exclusion de fichiers entiers à l'aide d'un seul modèle de regex. Une autre nouvelle fonctionnalité permet d'exclure le code entre des délimiteurs de début et de fin spécifiques. Cependant, cette flexibilité regex a des limitations, luttant contre des cas tels que les littéraux de chaîne contenant du texte de pragma. Des regex complexes sont parfois nécessaires pour des modèles spécifiques, mais peuvent encore entraîner des faux positifs. Malgré ces limitations, l'approche regex offre un bon équilibre de flexibilité, de puissance et d'utilisabilité pratique pour le code du monde réel.
nedbatchelder.com
Ned Batchelder: Coverage.py regex pragmas
Create attached notes ...
