Configuration avancée de la couverture de code
Configuration avancée de la couverture de code
La couverture de code mesure les lignes exécutées par les tests. Elle montre les parties d'une application que les tests ne vérifient pas.
Mesurer la couverture
bench --site <site-de-test> run-tests --app <mon_app> --coverage
La mesure porte sur les fichiers Python du dossier apps/<mon_app>. À la fin des tests, Dodock écrit le rapport coverage.xml dans le dossier sites/ du bench.
bench run-parallel-tests accepte l'option --with-coverage, ou la variable d'environnement CAPTURE_COVERAGE.
Exclusions standard
Dodock exclut toujours de la mesure : les fichiers JavaScript, CSS, HTML, Vue et XML, les dossiers test_*, node_modules et patches, et les fichiers *_dashboard.py des types de document.
Pour l'application frappe, Dodock exclut aussi les dossiers tests et commands, et les fichiers testés par la suite de tests des commandes.
Ajouter des exclusions propres à une application
Une application peut exclure d'autres fichiers dans la section [tool.coverage.run] de son fichier pyproject.toml. Dodock ajoute ces motifs aux exclusions standard : il ne les remplace pas.
[tool.coverage.run]
omit = [
# Les tests ne sont pas du code de production
"*/tests/*",
"*/doctype/*/test_*.py",
# Code ancien, remplacé par le module facturation
"mon_app/utils/legacy_code.py",
]
Un motif qui ne commence pas par *, ? ou / est relatif au dossier de l'application. Dodock le complète avec le chemin apps/<mon_app>/.
Les autres réglages de la section [tool.coverage] (par exemple [tool.coverage.report]) s'appliquent aussi. Sans section [tool.coverage], seules les exclusions standard s'appliquent.
.coveragerc dans le dossier de l'application n'est pas lu. Utilisez le fichier pyproject.toml.Bonnes pratiques
- Excluez seulement le code qui ne doit pas être testé : tests, code généré, code ancien en cours de retrait.
- Ajoutez un commentaire qui explique chaque exclusion.
- Relisez les exclusions de temps en temps et retirez celles qui ne servent plus.