2009-06-22 9 views
6

कई सालों से मैं qmTest नामक एक परीक्षण उपकरण का उपयोग कर रहा हूं जो मुझे कुछ फायरबर्ड डेटाबेस के लिए परीक्षण संचालित डेटाबेस विकास करने की अनुमति देता है। मैं एक नई सुविधा (तालिका, ट्रिगर, संग्रहीत प्रक्रिया, आदि) के लिए एक परीक्षण लिखता हूं जब तक कि यह विफल नहीं हो जाता है, तब परीक्षण पास होने तक डेटाबेस को संशोधित करें। यदि आवश्यक हो, तो परीक्षण के बाद तक मैं परीक्षण पर अधिक काम करता हूं, फिर परीक्षण पास होने तक डेटाबेस को संशोधित करता हूं। एक बार सुविधा के लिए परीक्षण पूरा हो गया है और 100% समय बीतता है, मैं इसे डेटाबेस के लिए अन्य परीक्षणों के सूट में सहेजता हूं। किसी अन्य परीक्षण या तैनाती पर जाने से पहले, मैं यह सुनिश्चित करने के लिए सभी परीक्षणों को सूट के रूप में चलाता हूं कि कुछ भी टूटा नहीं जाता है। टेस्ट में अन्य परीक्षणों पर निर्भरता हो सकती है, और परिणाम ब्राउज़र में रिकॉर्ड और प्रदर्शित होते हैं।एसक्यूएल सर्वर 2005 के लिए टेस्ट-फर्स्ट डेवलपमेंट टूल?

यहां कुछ भी नया नहीं है, मुझे यकीन है।

हमारी दुकान MSSQLServer पर मानकीकृत करने की ओर लक्षित है और मैं अपने डेटाबेस विकसित करने के लिए एक ही प्रक्रिया का उपयोग करना चाहता हूं। क्या किसी को ऐसे औजारों के बारे में पता है जो इस तरह के विकास की अनुमति देते हैं या प्रोत्साहित करते हैं? मेरा मानना ​​है कि टीम सिस्टम करता है, लेकिन इस समय हमारे पास इसका स्वामित्व नहीं है, और शायद कुछ समय तक नहीं होगा।

मैं स्क्रिप्टिंग का विरोध नहीं कर रहा हूं, लेकिन एक और ग्राफिकल वातावरण का स्वागत करता हूं।

कोई सुझाव?

उत्तर

2

टीम सिस्टम शायद सबसे प्रसिद्ध समाधान है, लेकिन आप TSQLUnit (SourceForge) भी आजमा सकते हैं।

मैंने इसे स्वयं नहीं उपयोग किया है, लेकिन this article इसे पेश करने का एक अच्छा काम करता है।

1

चेकआउट http://www.sqlservercentral.com/articles/Testing/66553/ और http://www.sqlservercentral.com/articles/Database+Design/66845/

यह T-SQL भीतर सब कुछ करने के बारे में एक बहुत ही कच्चे लेख है।

क्या आपने एनएचबर्ननेट का उपयोग करने और परीक्षण के लिए टेस्टड्रिवन या इसी तरह के उपयोग के बारे में सोचा है?

1

उन परियोजनाओं पर जहां मुझे डीबी प्रो के लिए टीम सिस्टम तक पहुंच नहीं थी, मैंने एमएसबिल्ड के साथ एसक्यूएल स्क्रिप्ट्स और एमएसबिल्ड (http://www.codeplex.com/sdctasks) के लिए एसडीसी कार्य लाइब्रेरी का उपयोग किया है। Msbuild स्क्रिप्ट किसी एसडीसी कार्य को किसी विशेष क्रम में मेरी एसक्यूएल स्क्रिप्ट चलाने के लिए कॉल करती है (उदा। डीबी बनाएं, टेबल आदि बनाएं ...) और किसी विशेष कनेक्शन स्ट्रिंग पर। स्क्रिप्ट हमेशा जांचती है कि कोई ऑब्जेक्ट मौजूद है या नहीं और पहले टायरडाउन करें और इसे बैक अप बनाएं।

एसक्यूएल और एमएसबिल्ड स्क्रिप्ट्स जो मैं एक नियमित दृश्य स्टूडियो डेटाबेस प्रोजेक्ट में रखता हूं (जो कुछ खास नहीं करता है, इसलिए आप एक साधारण खाली परियोजना का उपयोग करना चुन सकते हैं), इसलिए सब कुछ स्रोत नियंत्रित है।

स्क्रिप्ट के ऐसे सेट के साथ, आप प्रत्येक परीक्षण चलाने के लिए एक नया डेटाबेस सेट कर सकते हैं। इसके बाद आप डेटा के साथ पॉप्युलेट करने और इसके खिलाफ यूनिट परीक्षण चलाने के लिए सम्मिलित स्क्रिप्ट का उपयोग कर सकते हैं।

इन लिपियों में भी (देव/TST/योग्यता/...) अलग वातावरण में खरोंच से डेटाबेस की स्थापना

1

मैं पर्याप्त रूप से apply a test driven development style against SQL Server databases using TSQLUnit करने में सक्षम था के लिए उपयोगी होते हैं। मैंने उसी प्रवाह का पालन किया जैसा कि आपने यूनिट टेस्ट स्पोक लिखने के साथ पहले वर्णित किया है जो विफल रहता है और फिर परीक्षा उत्तीर्ण करने के लिए आवश्यक परिवर्तन कर रहा है। समय के साथ, मैंने परीक्षणों का एक सूट भी बनाया जब निष्पादित किया गया कि कोई भी नया बदलाव करने के दौरान कुछ भी तोड़ा नहीं गया।

कुछ कठिन धब्बे थे (मौजूदा स्पॉक्स के लिए परीक्षण लिखने में अत्यधिक कठिनाइयों सहित) लेकिन यह विशेष रूप से स्कीमा परिवर्तनों के लिए काम करता था।हालांकि, मैं T.S.T. the T-SQL Test Too1 को देखने की अनुशंसा करता हूं जो TSQLUnit (I had to roll my own) के विपरीत दावाों के लिए अंतर्निहित समर्थन है।

+0

+1 धन्यवाद मुझे टीएसटी को इंगित करते हुए, यह बहुत अच्छा लगता है। –

संबंधित मुद्दे