Sto cercando di definire un modo di lavorare con un database di test (in SQL Server) per i nostri test di integrazione.
La mia idea era di eseguire questi passaggi all'avvio dell'assembly test di integrazione:
- creare un database totalmente vuoto
- eseguire lo script "crea oggetti database" per creare tutti gli oggetti database rilevanti (tabella, viste, sequenze ecc.)
- riempire i "dati di base" (valori di ricerca ecc.)
- eseguire uno snapshot del database chiamato
(db)_Basis
come "linea di base" per futuri test di integrazione
Ora, prima di ogni classe di test (contenente test 1-n), stavo pianificando di fare semplicemente un "ripristino da istantanea" per tornare allo stato ben definito, più o meno "vuoto" del database. Finora funziona come un fascino.
Tuttavia, ci sono una serie di test di integrazione che devono funzionare su un ampio database di test, quindi speravo di farlo prima di ciascuna di queste apparecchiature di test (classi con n singoli test)
- ripristinare il database
(db)_Basis
dall'istantanea - inserisci quelle 50'000 + righe di dati nel database
- crea un'altra
(db)_With_Testdata
istantanea
e quindi per ogni test, reimpostare il database sulla (db)_With_Testdata
versione snapshot ben definita , eseguire i test, verificare il risultato e così via.
Il problema è: non riesco ad avere due istantanee db contemporaneamente - una volta fatto, non riesco a ripristinare il mio database su nessuno dei due .... Continuo a ricevere questo errore:
Messaggio 3137, livello 16, stato 4, riga 9
Database non può essere ripristinato. Il nome principale o quello dell'istantanea non sono stati specificati in modo errato, tutte le altre istantanee non sono state eliminate o sono presenti file mancanti.Messaggio 3013, livello 16, stato 1, riga 9
RIPRISTINA DATABASE si sta chiudendo in modo anomalo.
È davvero così che funzionano le snapshot del database di SQL Server ?? Sembra terribilmente restrittivo ..... Capirei se non potessi tornare direttamente all'istantanea "(db) _Basis" originale forse - ma solo perché ora ho due istantanee, non posso nemmeno tornare al più recente ?!?!?