
Imaginez ceci : vous travaillez sur un projet Python et vous passez des heures à exécuter manuellement vos tests avant chaque déploiement. Fatiguant, non ? Et si je vous disais qu’il existe une solution pour automatiser complètement ce processus ? Avec GitLab, nous pouvons configurer un pipeline CI/CD qui exécute vos tests Python automatiquement à chaque commit. Ensemble, nous allons découvrir comment mettre en place cette automatisation, étape par étape.
Prérequis et vision d’ensemble
Avant de commencer, voici ce dont vous aurez besoin :
- Un projet Python avec des tests unitaires (par exemple, avec pytest ou unittest)
- Un compte GitLab (gratuit ou entreprise)
- Des connaissances de base en Python et Git
- Un fichier
requirements.txtpour vos dépendances
Le temps estimé pour cette configuration est d’environ 30 minutes, selon votre familiarité avec les outils.
Tutoriel pas-à-pas
1. Préparer votre projet Python
Objectif : S’assurer que votre projet est prêt pour l’automatisation.
- Vérifiez que vos tests sont bien configurés. Par exemple, avec pytest, votre structure pourrait ressembler à ceci :
mon_projet/ ├── tests/ │ ├── test_ma_fonction.py │ └── ... ├── src/ │ └── ... └── requirements.txt - Installez pytest si ce n’est pas déjà fait :
pip install pytest - Vérifiez que vos tests passent en local :
pytest
Vérification : Tous vos tests doivent passer sans erreur.
Erreurs fréquentes :
- Tests qui échouent en local : corrigez-les avant de continuer
- Absence de
requirements.txt: générez-le avecpip freeze > requirements.txt
2. Créer un fichier .gitlab-ci.yml
Objectif : Configurer le fichier de configuration CI/CD de GitLab.
- À la racine de votre projet, créez un fichier nommé
.gitlab-ci.yml - Ajoutez la configuration de base :
stages: - test test_python: stage: test image: python:3.9 before_script: - pip install -r requirements.txt script: - pytest - Poussez ce fichier sur votre dépôt GitLab
Vérification : Allez dans l’onglet « CI/CD » > « Pipelines » de votre projet GitLab. Vous devriez voir un pipeline en cours d’exécution.
Erreurs fréquentes :
- Erreur de syntaxe dans le fichier YAML : vérifiez l’indentation
- Image Docker non disponible : utilisez une version stable de Python
3. Configurer les variables d’environnement
Objectif : Ajouter des variables sécurisées si nécessaire.
- Dans GitLab, allez dans « Settings » > « CI/CD »
- Ajoutez vos variables sous « Variables d’environnement »
- Par exemple, pour une base de données de test :
DB_HOST=localhost DB_USER=test DB_PASSWORD=secret
Vérification : Vos tests doivent pouvoir accéder à ces variables dans le pipeline.
Erreurs fréquentes :
- Variables non masquées : utilisez toujours le type « File » pour les mots de passe
- Variables non disponibles : vérifiez leur nom et leur casse
4. Ajouter des tests supplémentaires
Objectif : Enrichir votre pipeline avec d’autres types de tests.
- Modifiez votre fichier
.gitlab-ci.ymlpour inclure des tests de couverture :test_python: script: - pip install pytest-cov - pytest --cov=./src --cov-report=xml artifacts: reports: coverage_report: coverage_format: cobertura path: coverage.xml - Ajoutez des tests de linting avec flake8 :
lint: stage: test script: - pip install flake8 - flake8 src/ tests/
Vérification : Le pipeline doit maintenant inclure plusieurs étapes de test.
Erreurs fréquentes :
- Tests de couverture qui échouent : ajustez votre seuil de couverture
- Erreurs de linting : corrigez les problèmes de style
5. Configurer les notifications
Objectif : Recevoir des alertes en cas d’échec.
- Dans « Settings » > « CI/CD » > « Email notifications », configurez les destinataires
- Ou utilisez des webhooks pour Slack ou d’autres outils
Vérification : Vous devriez recevoir une notification après un échec de pipeline.
Bonnes pratiques / Optimisations
Pour aller plus loin, voici quelques conseils :
- Cachez les dépendances pour accélérer les builds :
cache: paths: - .cache/pip - Utilisez des tags pour exécuter des tests spécifiques
- Limitez la durée des jobs avec
timeout - Documentez votre pipeline avec des commentaires dans le fichier YAML
FAQ ciblée
Comment puis-je exécuter des tests sur plusieurs versions de Python ?
Créez plusieurs jobs avec différentes images Docker, par exemple :
test_python_3_8: image: python:3.8 script: - pytest test_python_3_9: image: python:3.9 script: - pytest
Comment puis-je tester mon application avec une base de données ?
Utilisez un service comme PostgreSQL ou MySQL dans votre pipeline :
test_with_db: services: - name: postgres:13 alias: postgres variables: POSTGRES_DB: test_db POSTGRES_USER: test POSTGRES_PASSWORD: secret
Comment puis-je exécuter des tests uniquement sur certaines branches ?
Utilisez les règles dans votre fichier YAML :
rules: - if: $CI_COMMIT_BRANCH == "main"
Comment puis-je voir les résultats de couverture de code ?
Pour visualiser les résultats de couverture de code dans GitLab, vous devez d’abord générer un rapport de couverture lors de l’exécution de vos tests. Cela peut être fait en utilisant des outils comme pytest-cov pour Python. Ensuite, vous pouvez configurer votre pipeline GitLab CI/CD pour afficher ces résultats directement dans l’interface de GitLab.
Voici un exemple de configuration dans votre fichier .gitlab-ci.yml pour générer et afficher les résultats de couverture de code :
stages:
- test
test:
stage: test
script:
- pip install pytest pytest-cov
- pytest --cov=my_module tests/
artifacts:
reports:
cobertura: coverage.xml
Dans cet exemple, le job test installe pytest et pytest-cov, exécute les tests avec couverture de code, et génère un fichier de rapport au format Cobertura (coverage.xml). Ce fichier est ensuite utilisé par GitLab pour afficher les résultats de couverture de code dans l’interface utilisateur.
6 réponses
-
Qu’est-ce qui vous a poussé é écrire sur « Automatiser Tests Python avec GitLab : Guide Pratique » ?
-
Avez-vous des conseils é donner concernant « Automatiser Tests Python avec GitLab : Guide Pratique » ?
-
Merci pour votre question ! Automatiser Tests Python avec GitLab : Guide Pratique est un sujet qui me tient é céur. Il est essentiel de prendre en compte tous les aspects pour avoir une vision compléte.
-
-
Quels sont les points importants é retenir sur « Automatiser Tests Python avec GitLab : Guide Pratique » ?
-
Pouvez-vous expliquer en détail « Automatiser Tests Python avec GitLab : Guide Pratique » ?
-
Merci pour votre question ! Automatiser Tests Python avec GitLab : Guide Pratique est un sujet qui me tient é céur. C’est un domaine qui évolue rapidement et qui nécessite une veille constante.
-
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.

Avez-vous des conseils é donner concernant "Automatiser Tests Python avec GitLab : Guide Pratique" ?
Merci pour votre question ! Automatiser Tests Python avec GitLab : Guide Pratique est un sujet qui me tient é céur. Il est essentiel de prendre en compte tous les aspects pour avoir une vision compléte.
Pouvez-vous expliquer en détail "Automatiser Tests Python avec GitLab : Guide Pratique" ?
Merci pour votre question ! Automatiser Tests Python avec GitLab : Guide Pratique est un sujet qui me tient é céur. C'est un domaine qui évolue rapidement et qui nécessite une veille constante.