I test delle unità dovrebbero essere eseguiti su ogni ramo git?

2

Sono nuovo nella gestione dei repository / integrazione continua.

Ho progettato un repository nel modo seguente

PROJ
 |-src
 |-include
 |-lib
 |-config
PROJ_Unit_Tests
 |-src
 |-config
PROJ_Doc

Quando eseguo l'integrazione continua, ovvero, eseguo il test dell'unità sul server di build, dovrebbero essere eseguiti su ogni ramo o solo sul ramo di sviluppo?

Se funzionano solo sul ramo di sviluppo e su un ramo di funzionalità attivo per molto tempo, temo che lo sviluppatore stia spingendo le modifiche al suo ramo di funzionalità che in realtà fallirebbero la build. D'altra parte, se un ramo di funzionalità disattiva la funzionalità del ramo di sviluppo, il programmatore deve disabilitare manualmente i test di unità corrispondenti.

    
posta 1v0 17.07.2015 - 16:58
fonte

2 risposte

4

Esegui i tuoi test unitari su ogni ramo. Come sai che il tuo codice funziona effettivamente come previsto altrimenti? Questo vale per tutti gli altri test che potresti avere.

Lo dici tu stesso proprio qui, " Se funzionano solo sul ramo di sviluppo e su un ramo di funzionalità in corso a lungo, temo che lo sviluppatore stia spingendo le modifiche al suo branch di funzionalità che in realtà fallirebbero la build ".

L'ultimo problema a cui stai suggerendo è lo sviluppatore da affrontare. È loro responsabilità aggiornare i test insieme alle funzionalità che stanno sviluppando.

Inoltre, investire in un'effettiva integrazione continua, come suggerito dal modello di riferimento, allevierà parte del dolore dei rami delle caratteristiche che si allontanano dal ramo di sviluppo o da altri rami delle funzionalità.

    
risposta data 17.07.2015 - 17:27
fonte
2

Should unit tests run on every git branch?

Questo è facile. Il punto principale di integrazione continua è di rilevare gli errori il prima possibile nel processo di generazione.

Da questo dovrebbe essere chiaro, che dovresti

a) esegui una suite di test su ogni ramo del tuo codice

b) non consente il check in del codice, che né viene eseguito passa tutti i test

Questo è il requisito minimo per il check-in del codice e l'esecuzione dell'integrazione continua

tl; dr

Si

offtopic:

Ho letto l'altro giorno un interessante articolo pubblicato su un noto IT-Portal tedesco ( Heise.de ) di un noto tedesco consolare Eberhard Wolff sui rami in contraddizione con l'integrazione continua in cui ha sostenuto, che i rami in via di sviluppo sono in linea di principio una violazione di CI , poiché si separa il codice per un po 'di tempo e si rilevano i conflitti solo quando si uniscono i rami. Le filiali possono essere testate solo in isolamento, il che è ovvio, a causa della loro natura. Egli vota per un ramo principale e per i commutatori per disabilitare le nuove funzionalità in produzione. Ovviamente questa soluzione non è sempre fattibile (vede chiaramente che i cavicchi non sono senza un costo). A volte i rami sono un'alternativa. Ma lui raccomanda rami davvero di breve durata.

Ecco il (tedesco) articolo .

    
risposta data 18.07.2015 - 00:49
fonte

Leggi altre domande sui tag