2013-06-03 5 views
6

Supponiamo che stia sviluppando software open source, scritto in un linguaggio interpretato, gestito come repo Git, che richiede un set di dati di grandi dimensioni (+300 MB) per i test di base.Dataset di prova di grandi dimensioni nel repository

I dati di test vanno inseriti nello stesso repository del codice sorgente, con uno script compileToZipFile.sh per le pubblicazioni? Sarebbe meglio memorizzare come due repository separati, uno srcRepo e testRepo?

Tutte le migliori pratiche/convenzioni sarebbero apprezzate.

risposta

1

Suppongo che la migliore risposta a questa domanda sia basata sulla necessità.

Al mio lavoro, ci segregano i nostri dati/codice di prova da ambiente di tipo come:

  • prova
  • QA
  • Staging
  • Produzione

Alcuni ambienti hanno gli stessi dati della produzione, mentre altri hanno dati più vecchi (o completamente diversi) . I vantaggi di questo sono:

  • Sandbox per testare, implementare e "giocare" con nuove idee/tecnologie.
  • Non si stanno influenzando i dati dal vivo, relativi al cliente.
  • I test integrati possono essere adattati a/focalizzati su determinati aspetti che sono agnostici alla base del codice principale.

Ora, come alle vostre domande ... come ho già detto, la segregazione dei dati consente per noi di fare rapidamente modifiche e implementare nuove funzionalità in quanto i dati che utilizziamo è focalizzata sulla ciò che stiamo testando. Abbiamo tre tronchi che hanno tutti dati di test indipendenti specifici per ciò che deve essere testato. Quando testiamo il View abbiamo una serie di test, quando testiamo il abbiamo un altro set di test e quando testiamo il Controller abbiamo ancora un altro set di test. Infine, abbiamo una serie di test di integrazione che vengono eseguiti quando viene rilasciata una nuova build. In tutti i casi tranne l'ultimo, i test vivono con il componente per cui sono stati creati; ma ancora una volta, poiché sono test di integrazione, ha senso che siano tenuti separati dei tre pezzi che verificano.

Penso che la tua idea sia solida.