मैं हमारे एकीकरण परीक्षण के लिए एक परीक्षण डेटाबेस (SQL सर्वर में) के साथ काम करने के तरीके को परिभाषित करने की कोशिश कर रहा हूं।
मेरा विचार एकीकरण परीक्षण विधानसभा के शुभारंभ पर ये कदम उठाने का था:
- एक पूरी तरह से खाली डेटाबेस बनाएँ
- सभी संबंधित डेटाबेस ऑब्जेक्ट्स (तालिका, विचार, क्रम आदि) बनाने के लिए "डेटाबेस ऑब्जेक्ट बनाएँ" स्क्रिप्ट चलाएं।
- "आधार डेटा" (लुकअप मान आदि) भरें
(db)_Basis
भविष्य के एकीकरण परीक्षणों के लिए "आधार रेखा" के रूप में कहा जाने वाला डेटाबेस स्नैपशॉट लें
अब हर परीक्षण वर्ग (1-एन परीक्षण युक्त) से पहले, मैं डेटाबेस के अच्छी तरह से परिभाषित, कम या ज्यादा "खाली" स्थिति में वापस आने के लिए बस "स्नैपशॉट से पुनर्स्थापित" करने की योजना बना रहा था। अब तक आकर्षण की तरह काम करता है।
हालांकि, एकीकरण परीक्षणों का एक सेट है जो एक बड़े परीक्षण डेटाबेस पर संचालित करने की आवश्यकता है - इसलिए मैं उनमें से प्रत्येक परीक्षण जुड़नार (एन व्यक्तिगत परीक्षणों के साथ कक्षाएं) से पहले ऐसा करने की उम्मीद कर रहा था।
(db)_Basis
स्नैपशॉट से डेटाबेस को पुनर्स्थापित करें- डेटाबेस में डेटा की उन 50'000 + पंक्तियों को डालें
- एक और स्नैपशॉट
(db)_With_Testdata
स्नैपशॉट बनाएँ
और फिर प्रत्येक परीक्षण के लिए, डेटाबेस को अच्छी तरह से परिभाषित (db)_With_Testdata
स्नैपशॉट संस्करण में रीसेट करें , परीक्षण चलाएं, परिणाम को सत्यापित करें और इसके बाद।
परेशानी यह है: मैं एक ही समय में दो db स्नैपशॉट नहीं देख सकता - एक बार जब मैं करता हूं, तो मैं अपने डेटाबेस को दोनों में से किसी को भी पुनर्स्थापित नहीं कर सकता .... मुझे यह त्रुटि मिलती रहती है:
एमएसजी 3137, लेवल 16, स्टेट 4, लाइन 9
डेटाबेस को वापस नहीं लाया जा सकता है। या तो प्राथमिक या स्नैपशॉट नाम अनुचित रूप से निर्दिष्ट हैं, अन्य सभी स्नैपशॉट को नहीं छोड़ा गया है, या लापता फाइलें हैं।Msg 3013, लेवल 16, स्टेट 1, लाइन 9
RESTORE DATABASE असामान्य रूप से समाप्त हो रहा है।
क्या सच में SQL Server डेटाबेस स्नैपशॉट काम करता है ?? लगता है कि बहुत ही सीमित है ..... अगर मैं सीधे मूल ("db) _Basis" स्नैपशॉट पर वापस नहीं जा सकता तो मुझे समझ में आएगा - लेकिन सिर्फ इसलिए कि मेरे पास अब दो स्नैपशॉट हैं, मैं सबसे हाल ही में वापस नहीं जा सकता ?!?!?