मुझे लगता है कि मैं इसमें शामिल रहूंगा, क्योंकि मैं अब तक कुछ जवाबों को वास्तव में नापसंद करता हूं।
चाहे आप इसे "यूनिट टेस्ट" या "एकीकरण परीक्षण" या "supercalifragilisticexpialidocious test" कहते हैं, इस उदाहरण में कोई फर्क नहीं पड़ता; डेटा एक्सेस घटकों के लिए केवल एक वैध परीक्षण है और यह वास्तविक डेटा पर परीक्षण करना है। उत्पादन डेटा स्पष्ट रूप से नहीं है, लेकिन इसकी एक उचित प्रतिकृति है।
आपको सबसे पहले जो करना है वह get the database itself under source control है। अफसोस की बात है, इसके लिए कोई ढांचा नहीं है; माइक्रोसॉफ्ट वीएसटीएस के कुछ संस्करणों में रास्ता तय करता है लेकिन अंतिम परिणाम अभी भी कुछ हद तक कम है। कम से कम आज की दुनिया में, आपको अपने आप को बहुत सारे काम करना होगा। लेकिन इसे गंभीरता से करें - जब आपको एक बड़ा अपडेट बॉट हो जाता है तो आपको खेद नहीं होगा और आपको डीबी वापस रोल करने की आवश्यकता है।
जो आपने सोर्स कंट्रोल के तहत रखा है, वह नवीनतम स्कीमा, आमतौर पर बेसलाइन स्क्रिप्ट, साथ ही "कॉन्फ़िगरेशन डेटा" स्क्रिप्ट्स (यानी गणना तालिकाओं की सामग्री) उत्पन्न करने के लिए आवश्यक है, और हालिया स्कीमा परिवर्तनों को दर्शाने के लिए स्क्रिप्ट को अपग्रेड करना आवश्यक है। यह आपको लगभग देता है जो आपको अस्थायी डेटाबेस पर "लाइव" परीक्षण करने की आवश्यकता होती है; आपके परीक्षण को केवल उन स्क्रिप्ट को स्रोत नियंत्रण से डाउनलोड करने की आवश्यकता होती है और उन्हें एक परीक्षण सर्वर और/या एक अलग डेटाबेस उदाहरण पर चलाया जाता है, आमतौर पर SQL Management Objects का उपयोग स्क्रिप्ट चलाने के लिए करते हैं (एसएमओ GO
कथन संभाल सकता है और जैसा; नियमित SqlConnection
नहीं कर सकता)।
विभिन्न उपकरण परीक्षण डेटाबेस में परीक्षण सामग्री की पीढ़ी के साथ आपकी मदद कर सकते हैं। शायद सबसे लोकप्रिय रेड गेट का SQL Data Generator है। डेटा बनाने के लिए ये टूल स्क्रिप्ट भी उत्पन्न कर सकते हैं, जो आप अपने परीक्षणों में उपयोग करेंगे। या, यदि आप ऐसा चुनते हैं, तो आप अपने उत्पादन डेटाबेस से डेटा साफ़ कर सकते हैं और परीक्षण के लिए रखने के लिए जो भी डेटा चुनते हैं, उसे स्क्रिप्ट करने के लिए SQL सर्वर प्रबंधन स्टूडियो का उपयोग करें। किसी भी तरह से, स्कीमा स्क्रिप्ट के समान, स्रोत नियंत्रण में अपनी टेस्ट डेटा स्क्रिप्ट रखें, और जब आपको अपने डीएएल का परीक्षण करने की आवश्यकता हो, तो डीबी इंस्टेंस को फायर करने के बाद इन स्क्रिप्ट को डाउनलोड करें और डेटा को पॉप्युलेट करने के लिए उनका उपयोग करें।
काश वहाँ एक भी रूपरेखा है कि आप के लिए यह सब करना होगा थे, लेकिन उपकरण, पुस्तकालयों, और अच्छा विकास प्रथाओं की सही संग्रह के साथ, आप यह एक बहुत कम दर्दनाक प्रक्रिया में कर सकते हैं।
इस पूरी तरह से सहमत है। – kyoryu
मैंने परीक्षण डेक के लिए माइक्रोसॉफ्ट के एसक्यूएल सर्वर एक्सप्रेस का उपयोग किया है; हम .mdf फ़ाइलों को स्रोत नियंत्रण में जांचते हैं। (एसक्यूएल सर्वर फ्लाई पर .ldf फ़ाइलों को फिर से बनाएगा।) यह मजेदार नहीं है, और आप आरएनयूयू और यूजर इंस्टेंस के बारे में सीखने के तरीके को और अधिक सीखना चाहते हैं। लेकिन यह काम करता है। – TrueWill
@ ट्राउविल: हार्ड कोर, उम्मीद है कि उन परीक्षण डेटाबेस छोटे हैं, अन्यथा एससी सर्वर पर बहुत सी डिस्क स्पेस चबाएंगे! यह निश्चित रूप से एक विकल्प है कि यह आपके बुनियादी ढांचे के साथ फिट बैठता है - हमारे लिए, भले ही हमने 1.5 जीबी डाटाबेस को परीक्षण के लिए 1.5 जीबी तक रखा हो, फिर भी यह स्रोत में जांच करने के लिए थोड़ा हास्यास्पद होगा। ;) – Aaronaught