Saya mencoba mendefinisikan cara bekerja dengan database pengujian (dalam SQL Server) untuk pengujian integrasi kami.
Gagasan saya adalah melakukan langkah-langkah ini pada peluncuran perakitan uji integrasi:
- buat database yang benar-benar kosong
- jalankan skrip "buat objek basis data" untuk membuat semua objek basis data yang relevan (tabel, tampilan, urutan, dll.)
- isi "data dasar" (nilai pencarian dll.)
- mengambil snapshot basis data yang disebut
(db)_Basis
sebagai "garis dasar" untuk pengujian integrasi di masa depan
Sekarang sebelum setiap kelas uji (berisi tes 1-n), saya berencana untuk melakukan "restore from snapshot" untuk kembali ke keadaan database yang didefinisikan dengan baik, kurang lebih "kosong". Bekerja seperti pesona sejauh ini.
Namun, ada satu set tes integrasi yang perlu beroperasi pada database uji besar - jadi saya berharap untuk melakukan ini sebelum masing-masing perlengkapan tes (kelas dengan n tes individu)
- pulihkan database dari
(db)_Basis
snapshot - masukkan 50'000 + baris data ke dalam basis data
- buat snapshot
(db)_With_Testdata
snapshot lain
dan kemudian untuk setiap tes, setel ulang database ke (db)_With_Testdata
versi snapshot yang terdefinisi dengan baik , jalankan tes, verifikasi hasilnya dan sebagainya.
Masalahnya adalah: Saya sepertinya tidak dapat memiliki dua snapshot db secara bersamaan - begitu saya melakukannya, saya tidak dapat mengembalikan basis data saya ke salah satu dari mereka .... Saya terus mendapatkan kesalahan ini:
Msg 3137, Level 16, Status 4, Baris 9
Basis Data tidak dapat dikembalikan. Entah nama utama atau foto tidak ditentukan dengan benar, semua foto lain belum dijatuhkan, atau ada file yang hilang.Msg 3013, Level 16, State 1, Line 9
KEMBALIKAN DATABASE berakhir secara tidak normal.
Apakah itu benar-benar cara kerja snapshot basis data SQL Server ?? Tampak sangat membatasi ..... Saya akan mengerti jika saya tidak dapat kembali langsung ke snapshot "(db) _Basis" asli mungkin - tetapi hanya karena saya sekarang memiliki dua snapshot, saya bahkan tidak dapat kembali ke yang terbaru ?!?!?