ฉันกำลังพยายามกำหนดวิธีการทำงานกับฐานข้อมูลทดสอบ (ใน SQL Server) สำหรับการทดสอบการรวมระบบของเรา
ความคิดของฉันคือการทำตามขั้นตอนเหล่านี้ในการเปิดตัวชุดทดสอบการรวมระบบ:
- สร้างฐานข้อมูลที่ว่างเปล่าโดยสิ้นเชิง
- เรียกใช้สคริปต์ "สร้างวัตถุฐานข้อมูล" เพื่อสร้างวัตถุฐานข้อมูลที่เกี่ยวข้องทั้งหมด (ตารางมุมมองลำดับ ฯลฯ )
- กรอก "ฐานข้อมูล" (ค่าการค้นหา ฯลฯ )
- ถ่ายภาพฐานข้อมูลที่เรียกว่า
(db)_Basis
"เส้นฐาน" สำหรับการทดสอบการรวมระบบในอนาคต
ตอนนี้ก่อนทุกคลาสการทดสอบ (ที่มีการทดสอบ 1-n) ฉันวางแผนที่จะทำการ "กู้คืนจากสแน็ปช็อต" เพื่อกลับไปยังสถานะ "ว่าง" ที่กำหนดไว้อย่างดีไม่มากก็น้อย ทำงานเหมือนจับใจจนถึงตอนนี้
อย่างไรก็ตามมีชุดของการทดสอบการรวมที่จำเป็นต้องใช้ในฐานข้อมูลการทดสอบขนาดใหญ่ - ดังนั้นฉันหวังว่าจะทำสิ่งนี้ก่อนที่จะทำการติดตั้งการทดสอบแต่ละชุด
- กู้คืนฐานข้อมูลจากส
(db)_Basis
แน็ปช็อต - แทรกข้อมูล 50'000 + แถวเหล่านั้นลงในฐานข้อมูล
- สร้างสแน็
(db)_With_Testdata
ปช็อตอื่น
จากนั้นสำหรับการทดสอบแต่ละครั้งให้รีเซ็ตฐานข้อมูลเป็น(db)_With_Testdata
เวอร์ชันสแน็ปช็อตที่กำหนดไว้อย่างดีรันการทดสอบตรวจสอบผลลัพธ์และอื่น ๆ
ปัญหาคือ: ฉันดูเหมือนจะไม่สามารถมีสอง snapshots db ในเวลาเดียวกัน - เมื่อฉันฉันไม่สามารถคืนค่าฐานข้อมูลของฉันทั้งสอง .... ฉันได้รับข้อผิดพลาดนี้:
ข่าวสารเกี่ยวกับ 3137, ระดับ 16, สถานะ 4,
ฐานข้อมูลLine 9 ไม่สามารถเปลี่ยนกลับได้ อาจระบุชื่อหลักหรือชื่อสแน็ปช็อตอย่างไม่เหมาะสมสแน็ปช็อตอื่นทั้งหมดไม่ได้ถูกทิ้งหรือมีไฟล์ขาดหายไปข่าวสารเกี่ยวกับ 3013 ระดับ 16 สถานะ 1 บรรทัดที่ 9
ฐานข้อมูลการคืนค่าถูกยกเลิกอย่างผิดปกติ
นั่นเป็นวิธีการที่ snapshot ของฐานข้อมูล SQL Server ทำงานจริงหรือ ดูเหมือนว่าจะ จำกัด อย่างมาก ..... ฉันจะเข้าใจถ้าฉันไม่สามารถย้อนกลับไปยังต้นฉบับดั้งเดิม (db) _Basis "snapshot ได้ - แต่เพียงเพราะตอนนี้ฉันมีสอง snapshot ฉันไม่สามารถกลับไปที่ล่าสุดได้ ?!?!?