2012-08-10 25 views
6

पर डेटाबेस को पुन: तैनात करने के लिए फिर से बनाएं, वर्तमान में मैं विजुअल स्टूडियो 2012 आरसी और एसक्यूएल सर्वर 2012 आरटीएम का उपयोग कर रहा हूं।प्रत्येक टेस्ट रन

मैं जानना चाहता हूं कि प्रत्येक टेस्ट रन के लिए टेस्ट डेटाबेस को फिर से तैनात/पुन: तैयार कैसे करें।

ध्यान रखें मेरे पास Visual Studio 2012 के टेम्पलेट का उपयोग कर डेटाबेस के लिए SQL सर्वर डेटाबेस प्रोजेक्ट है।

असल में मैं एक विचार मेरे दिमाग में मिल गया के बारे में बहुत यकीन नहीं है, लेकिन .testsettings फ़ाइल सेटअप और सफाई स्क्रिप्ट है। क्या यह जाने का रास्ता है? उदाहरण के लिए, डेटाबेस प्रोजेक्ट को स्क्रिप्ट जेनरेट करने और डेटाबेस के विरुद्ध निष्पादित करने वाली PowerShell स्क्रिप्ट?

मुझे लगता है कि ऐसा करने के बेहतर तरीके हैं और यह एक आउट ऑफ़ द बॉक्स समाधान होना चाहिए, लेकिन मैं इसे अनदेखा करता हूं और Google सही समाधान खोजने में मेरी सहायता नहीं करता है।

+0

क्या आप SQL सर्वर, या स्थानीय डीबी के खिलाफ तैनाती और परीक्षण करना चाहते हैं? यदि आप हर बार पुनर्निर्माण कर रहे हैं, तो मैं स्थानीय डीबी के खिलाफ परीक्षण का सुझाव दूंगा। साथ ही, क्या आप टीएफएस का उपयोग कर रहे हैं, या बिल्ड एजेंट के रूप में कुछ और? "सभी परीक्षण चलाएं" से आपका मतलब है कि मैन्युअल रूप से सभी परीक्षणों, या स्वचालन के कुछ रूपों को चलाने के लिए चयन करना (यानी प्रत्येक निर्माण, सीआई, गेटेड चेक आदि के बाद)? –

+0

@ aclear16 मैं SQL सर्वर के खिलाफ तैनाती करना चाहता हूं। अभी के लिए, यह टीएफएस बिल्ड के लिए नहीं है, यह मैन्युअल रूप से आदेशित परीक्षण निष्पादित करने के लिए है। –

उत्तर

3

जैसा कि बताया गया है कि आप शायद वीएस 2012 का उपयोग करना चाहेंगे। Local.testsettings> सेटअप और क्लीनअप स्क्रिप्ट्स को SQL सर्वर डेटाबेस बनाने/निकालने के लिए।

enter image description here

स्क्रिप्ट आप एक .dacpac (बजाय सिर्फ एक टी SQL स्क्रिप्ट) के साथ powershell का उपयोग करने के बाद से आप एक SSDT परियोजना का उपयोग कर रहे चाहते हो सकता है के लिए

। यहां कुछ उदाहरण कोड के लिए link है - विशेष रूप से आप 'परिनियोजन-डीएसी' कमांड को देखना चाहेंगे।

यदि आप एसएसडीटी-निर्मित डेटाबेस प्रोजेक्ट्स (बिल्ड) आउटपुट के रूप में .dacpacs से अपरिचित हैं, तो इस संदर्भ link पर एक नज़र डालें।

+0

धन्यवाद, मैं इसे आज़मा दूंगा। मुझे अपने निर्देशों की जांच करने दें :) –

+0

क्या कोई PowerShell स्क्रिप्ट सीधे सेटअप और क्लीनअप स्क्रिप्ट के रूप में लॉन्च की जा सकती है? –

+0

उदाहरण के लिए, आप स्थानीय डीबी के aclear16 के दृष्टिकोण के बारे में क्या सोचते हैं (प्रश्न में अपनी टिप्पणी देखें)। –

2

सबसे तेज़ समाधान, जबकि एक हैक का थोड़ा सा वास्तव में सरल है। आप डिबगिंग टैब के तहत डीबी प्रोजेक्ट गुणों को "हमेशा पुन: निर्मित डीबी" पर सेट कर सकते हैं। फिर दो क्लिक में परीक्षण करें, डीबग/बिल्ड करें, फिर सभी परीक्षण चलाएं। आप के लिए भाग लेने के लिए परीक्षण के लिए आपको स्थानीय डीबी पर ताजा बनाया गया डीबी मिलना चाहिए। आप डीबगिंग डीबी (फिर से डीबी प्रोजेक्ट गुण) के लिए भी जो कुछ भी चाहते हैं, के लिए लक्ष्य भी बदल सकते हैं, ताकि आप एक .dacpac, या मौजूदा SQL डीबी या कहीं भी तैनात कर सकें। इसका मतलब है दो चरणों में परीक्षण, और यदि आपका निर्माण लंबा है, तो यह परेशान हो सकता है, लेकिन यह काम करता है। अन्यथा, मुझे विश्वास है कि स्क्रिप्टिंग आपका एकमात्र विकल्प है।

2

संपादित करें: हालांकि यह एक सादे SQL सर्वर तरीके से प्रश्न का उत्तर नहीं देता है, लेकिन एक आसान इकाई फ्रेमवर्क दृष्टिकोण निम्न होगा: मुझे पता चला कि मैं हर बार सही ढंग से DbContext.Database का उपयोग कर अपने डेटाबेस को बना और नष्ट कर सकता हूं मेरे परीक्षण और मेरे परीक्षणों के क्लीनअप चरणों में .CreateIfNotExists() और DbContext.Database.Delete() विधियां।

+0

ठीक है, यह तब होता है जब आप ईएफ का उपयोग कर रहे हैं :) –

+0

मेरा बुरा ... व्हाउप्स। – CokoBWare

+0

अच्छा, वास्तव में यह उपयोगी है कि आपने भविष्य में आगंतुकों के लिए यह जानकारी जोड़ दी है! +1;) –