Ho un server CI (Hudson) che costruisce allegramente, esegue test unitari e distribuisce nell'ambiente di sviluppo, ma ora mi piacerebbe farlo funzionare con i test di integrazione.
I test di integrazione colpiranno un database e quel database verrà costantemente modificato per contenere i dati rilevanti per il test in questione. Ciò tuttavia porta ad un problema: come posso assicurarmi che il database non venga splattato con i dati per un test e che i dati vengano sovrascritti da un secondo progetto prima del completamento della prima serie di test?
Attualmente uso il metodo "speranza", che al momento non sta funzionando male, ma soprattutto perché abbiamo un piccolo numero di test di integrazione impostati su CI.
Come lo vedo ho le seguenti opzioni:
- Database test-local (in memoria)
Non sono sicuro che nessun database in memoria gestisca tutta la paura dei trigger e dei pacchetti di Oracle ecc. e qualsiasi cosa di meno non ritenga che valga la pena di essere testata . - Database dell'esecutore CI locali - Sarebbe necessaria una buona quantità di lavoro per impostare questo e tenerli aggiornati, ma con aria di sfida un'opzione (la maggior parte del lavoro è già stato fatto per mantenere attivo il database degli attuali elementi di configurazione) -to-date).
- Esecutore singolo "test di integrazione"
Probabilmente il più semplice da implementare, ma significherebbe che i test di integrazione potrebbero essere un po 'indietro. - Blocco del database (o set di tabelle)
Sono sicuro di aver perso alcuni modi (per favore aggiungili). Come si eseguono test di integrazione basati su database sul server CI? Quali problemi hai avuto e quale metodo mi consigliate? (Nota: mentre utilizzo Hudson, sono felice di accettare le risposte per qualsiasi server CI, le idee che sono sicuro saranno portatili, anche se i dettagli non lo sono).
Saluti,
MLK