Nous avons trois ensembles de suites de tests:
- Une "petite" suite, ne prenant que quelques heures à courir
- Une suite "moyenne" qui prend plusieurs heures, généralement exécutée tous les soirs (tous les soirs)
- Une "grande" suite qui prend une semaine + pour fonctionner
Nous avons également un tas de suites de tests plus courtes, mais je ne me concentre pas sur elles ici.
La méthodologie actuelle consiste à exécuter la petite suite avant chaque validation dans le tronc. Ensuite, la suite moyenne s'exécute tous les soirs, et si le matin elle s'est avérée avoir échoué, nous essayons d'isoler lequel des commits d'hier était à blâmer, annulons ce commit et réessayons les tests. Un processus similaire, uniquement à une fréquence hebdomadaire plutôt que nocturne, est effectué pour la grande suite.
Malheureusement, la suite moyenne échoue assez fréquemment. Cela signifie que le coffre est souvent instable, ce qui est extrêmement gênant lorsque vous souhaitez apporter des modifications et les tester. C'est ennuyeux parce que lorsque je quitte le coffre, je ne peux pas savoir avec certitude qu'il est stable, et si un test échoue, je ne peux pas savoir avec certitude si c'est ma faute ou non.
Ma question est la suivante: existe-t-il une méthodologie connue pour gérer ce genre de situations de manière à laisser le coffre toujours en pleine forme? par exemple "s'engager dans une branche spéciale de pré-engagement qui mettra ensuite à jour périodiquement le tronc chaque fois que la nuit passe".
Et est-ce important si c'est un système de contrôle de source centralisé comme SVN ou un système distribué comme git?
Soit dit en passant, je suis un développeur junior avec une capacité limitée à changer les choses, j'essaie simplement de comprendre s'il existe un moyen de gérer cette douleur que je ressens.