From 9e6a5c0663a48455db0754f021d97ca3e105012d Mon Sep 17 00:00:00 2001 From: Johan LEROY Date: Fri, 18 Sep 2026 14:28:05 +0200 Subject: [PATCH] ci(sonar): classe tout apps/backend/tests comme test, pas les seuls test_*.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le quality gate de la PR tombait à 0 % de couverture sur le nouveau code : tests/api/acces.py ne matche ni `**/*test_*.py` ni `**/*test.py`, donc Sonar le comptait en code de production, qu'aucun rapport de couverture ne mesure. Le pattern `tests` des exclusions ne l'attrapait pas non plus : sans wildcard, il ne désigne que le chemin `tests` à la racine du dépôt. Même défaut pour tests/factories.py et les __init__.py, déjà sur dev. --- sonar-project.properties | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sonar-project.properties b/sonar-project.properties index 43c28fd..1f46024 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -5,11 +5,14 @@ sonar.sourceEncoding=UTF-8 # Dossier contenant le code source sonar.sources=apps/frontend/src,apps/backend # Dossier contenant les tests +# Piège : tout apps/backend/tests/** est du test, pas seulement les fichiers test_*.py. +# Les modules de données (acces.py, factories.py) et les __init__.py comptaient sinon +# comme code de production non couvert, et tiraient la couverture du nouveau code à 0 %. sonar.tests=apps/frontend/src,apps/backend/tests -sonar.test.inclusions=**/*.spec.ts,**/*.test.ts,**/*test_*.py,**/*test.py +sonar.test.inclusions=**/*.spec.ts,**/*.test.ts,apps/backend/tests/**/*.py # Liste des fichiers et dossiers à exclure de l'analyse -sonar.exclusions=.pytest_cache,.venv,alembic,tests,**/*/node_modules/**,**/*/dist/**,**/*/build/**,**/*.spec.ts,**/*.test.ts,**/*test_*.py,**/*test.py +sonar.exclusions=.pytest_cache,.venv,alembic,**/*/node_modules/**,**/*/dist/**,**/*/build/**,**/*.spec.ts,**/*.test.ts,apps/backend/tests/**/*.py # Chemin vers le rapport de couverture de code # Fichier généré par Pytest