Abbiamo tre set di suite di test:
- Una "piccola" suite, impiegando solo un paio d'ore per eseguire
- Una suite "media" che richiede più ore, in genere viene eseguita ogni notte (ogni notte)
- Una suite "grande" che richiede una settimana + per eseguire
Abbiamo anche una serie di suite di test più brevi, ma qui non mi sto concentrando su di esse.
L'attuale metodologia consiste nell'eseguire la piccola suite prima di ogni commit al trunk. Quindi, la suite media viene eseguita tutte le sere, e se al mattino si è scoperto che non è andata a buon fine, proviamo a isolare quale dei commit di ieri era da biasimare, rollback che commettono e riprovano i test. Un processo simile, solo a frequenze settimanali anziché notturne, viene eseguito per la suite di grandi dimensioni.
Sfortunatamente, la suite media fallisce abbastanza frequentemente. Ciò significa che il trunk è spesso instabile, il che è estremamente fastidioso quando si desidera apportare modifiche e testarle. È fastidioso perché quando esco dal bagagliaio, non posso sapere per certo che sia stabile, e se un test fallisce non posso sapere con certezza se è colpa mia o meno.
La mia domanda è, esiste una metodologia nota per gestire questo tipo di situazioni in un modo che lascerà il tronco sempre in ottima forma? ad es. "Effettua il commit in uno speciale ramo di precommit che aggiornerà periodicamente il trunk ogni volta che passa la notte".
E importa se si tratta di un sistema di controllo del codice centralizzato come SVN o uno distribuito come git?
Per come sono uno sviluppatore junior con una capacità limitata di cambiare le cose, sto solo cercando di capire se c'è un modo per gestire questo dolore che sto vivendo.