2009-06-22 15 views
9

मैं सिर्फ VS2008 का उपयोग करते समय लिख सी # कोड मैं एक अलग 'टेस्ट परियोजना' मैं कहाँ रखेंगे होने के लिए इस्तेमाल किया हूँ एसक्यूएल 2008 के लिए clr संग्रहित प्रक्रियाओं लिखने के लिए में हो रही है साथ एसक्यूएल संग्रहित प्रक्रियाओं परीक्षण सब मेरी यूनिट परीक्षण कोड, हालांकि यह पहली बार ब्लश में दिखाई देता है कि मेरे पास संग्रहित प्रक्रियाओं के साथ एक क्लर्क एसक्यूएल प्रोजेक्ट के साथ एक ही सेटअप नहीं हो सकता है। ऐसा लगता है जैसे यह किया जा सकता है, और मुझे कुछ कॉन्फ़िगरेशन पैरामीटर याद आ रहे हैं, लेकिन मुझे यकीन नहीं है कि वे क्या हो सकते हैं।CLR यूनिट टेस्ट परियोजना

मैं

  • दृश्य स्टूडियो का उपयोग कर रहा 2008
  • एमएस टेस्ट
  • एमएस एसक्यूएल 2008

मेरे आवश्यकताएँ हैं:

  1. डिबग दृश्य में संग्रहीत प्रक्रिया स्टूडियो डीबगर
  2. इकाई परीक्षण का एक समूह संग्रहित प्रक्रियाओं

परीक्षण करने के लिए किसी को भी पता है कि कैसे मैं इकाई परीक्षण परियोजना ठीक से, सर्वर से संग्रहित प्रक्रियाओं depoly एसक्यूएल सर्वर से कनेक्ट हो सकता है, और मुझे करने की अनुमति सर्वर पर बैठे संग्रहीत प्रक्रियाओं के लिए इकाई परीक्षण के माध्यम से कदम?

**** अद्यतन ****

जवाब अब तक के लिए सभी को धन्यवाद, लेकिन वे excatly नहीं हैं मैं के लिए क्या देख रहा हूँ।

Mark Seemann's नीचे एक उत्तर एक दिलचस्प दृष्टिकोण है जिसे मैं नहीं जानता था, और जब मैं अपने डेटाबेस को किसी ज्ञात स्थिति में रीसेट करने की बात आती हूं तो मैं निश्चित रूप से उपयोग करूंगा। हालांकि, मैं सीएलआर संग्रहीत प्रक्रियाओं को डीबग करना चाहता हूं, और ऐसा नहीं लगता है कि मार्क की विधि मुझे SQL सर्वर के माध्यम से, मेरी यूनिट परीक्षण परियोजना से कदम उठाने और सर्वर पर बैठे कोड को डीबग करने की अनुमति देगी।

मैं वास्तव में बहुत समाधान pho3nix नीचे सूचीबद्ध की तरह, सी सर्वर पर बैठे # डिबग करने के लिए देख रहा हूँ। हालांकि, इस मानक दृष्टिकोण का उपयोग करके आपको 'टेस्ट.sql' फ़ाइल का उपयोग करके अपनी टेस्ट स्क्रिप्ट लिखना होगा और विजुअल स्टूडियो के भीतर से यूनिट टेस्ट प्रोजेक्ट का उपयोग नहीं करना होगा।

मुझे उम्मीद है कि मेरे समाधान में दो परियोजनाएं हो सकती हैं, एक मेरी सीएलआर संग्रहीत प्रक्रियाओं के लिए और एक मेरी यूनिट टेस्ट प्रोजेक्ट के लिए। जब मैं अपने यूनिट टेस्ट प्रोजेक्ट में अपने परीक्षण चलाने के लिए चाहता हूं तो मुझे उम्मीद है कि मेरे सीएलआर संग्रहीत प्रक्रिया प्रोजेक्ट में किए गए सभी बदलाव सर्वर पर प्रकाशित किए जाएंगे, परीक्षण परियोजना निष्पादन शुरू हो जाएगी, और यदि मैंने सीएलआर में ब्रेक पॉइंट सेट किया है संग्रहित प्रक्रिया जब यूनिट परीक्षण उस संग्रहीत प्रक्रिया का परीक्षण करना शुरू करता है जो सर्वर पर टूट जाएगा और मैं कोड के माध्यम से कदम उठा सकता हूं।

निकटतम समाधान मैं अब तक पाया है लेकिन इस समाधान मैं एसक्यूएल सर्वर के लिए के माध्यम से कदम नहीं कर सकते हैं का उपयोग कर, Alex Kuznetsov and Alex Styler कर रहा है।

**** अद्यतन 2 ****

यह अधिक है एक 'टक्कर' इस सवाल वापस लाने के लिए ... मैं फिर भी प्रयास विफल इकाई से एसक्यूएल सर्वर के लिए कदम मिला है परीक्षण। कोई अन्य विचार?

उत्तर

2

आपको अपने कोड को डीबग करने में सक्षम होने से पहले कनेक्शन पर SQL/CLR डिबगिंग सक्षम करना होगा।ऐसा करने के लिए, निर्देशों का पालन करे http://msdn.microsoft.com/en-us/library/ms165039(VS.80).aspx

ध्यान दें कि जब आप अपने सी # सपा डिबग, एसक्यूएल सर्वर में सभी प्रबंधित धागे अपना डीबगिंग

आशा इस में मदद करता है के दौरान निलंबित कर देगा में ।

1

मैं wrote pretty extensively on this subject कुछ समय पहले। मैं हमेशा एक टीडीडी फैशन में अपने डेटा एक्सेस घटकों को लागू करता हूं। लिंक में पोस्ट पर एक नज़र डालें - आलेख स्वयं आपको सर्वश्रेष्ठ अवलोकन प्रदान नहीं कर सकता है, लेकिन आप नमूना कोड भी डाउनलोड कर सकते हैं और अपने अवकाश पर इसका निरीक्षण कर सकते हैं।

मुझे लगता है कि यह आपकी सभी आवश्यकताओं को पूरा करता है।

2

जब कोई प्रोजेक्ट बनाते हैं तो मेरे पास डेटाबेस के साथ एक वृक्षदृश्य नोड होता है और SQL सर्वर प्रोजेक्ट नामक एक आइटम होता है।

alt text http://img514.imageshack.us/img514/8523/81345560.jpg

अगला जब परियोजना खाका बनाया है मैं मिल टेस्ट स्क्रिप्ट (Test.sql) जहां मैं अपने सभी एसक्यूएल सर्वर CLR कक्षाएं परीक्षण कर सकते हैं, आम एसक्यूएल प्रक्रियाओं और आदेशों का उपयोग करते।

alt text http://img17.imageshack.us/img17/7826/38591345.jpg

इस के साथ आप डिबग साथ CLR के लिए एक विकास इंटरफेस हो सकता है। Test.sql सीएलआर कक्षाओं के लिए यूनिट कक्षा की तरह है।

पीएस। अपने SQL सर्वर कॉन्फ़िगरेशन में सक्रिय सीएलआर मत भूलना।

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