Abbiamo tre serie di test suite:
- Una "piccola" suite, che richiede solo un paio d'ore per funzionare
- Una suite "media" che richiede più ore, di solito viene eseguita ogni notte (di notte)
- Una suite "grande" che richiede una settimana + per l'esecuzione
Abbiamo anche un sacco di suite di test più brevi, ma non mi sto concentrando su di esse qui.
La metodologia attuale consiste nell'eseguire la piccola suite prima di ogni commit sul trunk. Quindi, la suite di medie dimensioni viene eseguita ogni notte e, se la mattina si è rivelata fallita, proviamo a isolare quale degli impegni di ieri era la colpa, il rollback che commette e riprova i test. Un processo simile, solo con frequenza settimanale anziché notturna, 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 con certezza che è stabile e se un test fallisce non posso sapere con certezza se è colpa mia o no.
La mia domanda è: esiste una metodologia nota per gestire questo tipo di situazioni in un modo che lascerà il bagagliaio sempre in perfetta forma? ad es. "impegnarsi in uno speciale ramo di precommit che aggiornerà periodicamente il tronco ogni volta che passa di notte".
E importa se si tratta di un sistema centralizzato di controllo del codice sorgente come SVN o di un sistema distribuito come git?
A proposito, 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.