Une version et une intégration appropriées des tests automatisés sont essentielles pour garantir que les vérifications correspondent à l'état actuel du projet.
Historique de la question
Les tests automatisés étaient souvent gérés séparément du projet principal, ce qui entraînait des incompatibilités et des problèmes de maintenance. Le développement de plusieurs branches, les mises à jour fréquentes des logiciels et des tests ont engendré la nécessité d'un système de contrôle de version commun.
Problème
Sans versionnage et intégration cohérente, il y a :
Solution
Approche moderne :
# Approche générale : git checkout -b feature/new_login # La fonctionnalité et les tests sont développés et testés ensemble # Après révision, ils sont fusionnés ensemble dans la branche principale
Caractéristiques clés :
Peut-on stocker les tests dans un dépôt séparé (du code du projet) ?
Oui, mais il devient alors plus difficile de maintenir l'actualité des tests, un synchronisation manuelle est requise, et il y a un risque d'"oublier" de mettre à jour quelque chose lors d'un déploiement ou d'un correctif.
Les tests doivent-ils couvrir immédiatement toute la nouvelle fonctionnalité lors de la création d'une PR ?
Idéalement — oui, en pratique, ils couvrent souvent les principaux scénarios dans le premier PR, et les cas complexes sont traités dans des tâches séparées. L'essentiel est que la fonctionnalité critique soit couverte immédiatement.
Peut-on annuler uniquement les changements de tests sans revenir au code ?
Si les tests et le code sont dans une seule branche — oui, il est possible d'annuler les révisions. Mais il est préférable d'éviter d'"annuler" les tests sans le code : cela dégrade la qualité de la vérification.
Projet avec un dépôt séparé pour les tests automatisés. Après le déploiement, les programmeurs ont "oublié" de mettre à jour les tests — les tests échouaient, des vérifications non à jour étaient effectuées, et des bogues étaient attrapés en production.
Avantages :
Inconvénients :
Les tests et le code du projet sont gérés dans une même branche git : à chaque nouvelle pull request, les tests automatisés sont systématiquement mis à jour pour le code ajouté. Tous les changements passent par une révision de code et des vérifications automatiques.
Avantages :
Inconvénients :