2010-06-10 22 views
9

मेरे एमएसटीएस्ट यूनिटटेस्ट प्रोजेक्ट में, किसी भी परीक्षण को चलाने से पहले, मुझे कुछ कमांड निष्पादित करने की आवश्यकता है। क्या कोई सुविधा है, जैसे ग्लोबल.एक्सएक्स वेब आधारित परियोजनाओं के लिए है, जो किसी भी परीक्षण चलाने से पहले मुझे कुछ बंद कर देगा?ग्लोबल.एक्सएक्स?

मुझे यह स्पष्ट करना चाहिए कि जब मैं "कुछ आदेश निष्पादित करता हूं" कहता हूं, तो मेरा मतलब डॉस कमांड नहीं है, लेकिन कुछ कोड निष्पादित करें। आप में से

उत्तर

16

में .dll का स्थान निर्दिष्ट अगर मैं सही ढंग से समझ, आप कुछ प्रवर्तन कोड चलाने के लिए इससे पहले कि आप शुरू की जरूरत है अपने परीक्षण। यदि यह वास्तव में मामला है आप ClassInitializeAttribute इस तरह के साथ अपने इकाई परीक्षण वर्ग के भीतर एक प्रणाली की घोषणा करना चाहिए:

[ClassInitialize] 
public void ClassSetUp() 
{ 
    //initialization code goes here... 
} 

संपादित करें: वहाँ भी AssemblyInitializeAttribute कि किसी अन्य परीक्षण से पहले विधानसभा में चलेंगे

+3

+1, वाह, 'AssemblyInitializeAttribute' – tster

+0

' AssemblyInitializeAttribute' के बारे में कोई जानकारी नहीं थी, मुझे वही चाहिए जो मुझे चाहिए। धन्यवाद एक गुच्छा, अपने आप को एक हरा चेक मार्क है। – AngryHacker

+0

मुझे इसे अब काम करने के लिए हस्ताक्षर बदलना पड़ा: 'सार्वजनिक स्थैतिक शून्य क्लाससेट (टेस्टकॉन्टेक्स्ट सीटीएक्स) ' – Apolo

1

गुण परियोजना और फिर वहाँ डिबग क्षेत्र आप तर्क

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

उदाहरण के लिए मैं NUnit का उपयोग मैं बाहरी कार्यक्रम के रूप में NUnit निर्दिष्ट और आदेश पंक्ति तर्क

+0

मैं बाहरी आदेश चलाने के बजाए कुछ कोड निष्पादित करना चाहता हूं। – AngryHacker

+0

और जो आपने बनाया है .exe फ़ाइल चलाने से आपको रोकता है? आप अपने कोड को संकलित कर सकते हैं जिसे एक एक्सई में निष्पादित करने की आवश्यकता है जिसे आप डीबग सत्र पर शुरू करेंगे या मुझे कुछ याद आ रहा है क्योंकि मुझे लगता है कि यह आपकी समस्या का एक अच्छा समाधान है। – Chino

+0

किसी भी परीक्षण से पहले मुझे कुछ कोड चलाने की जरूरत है। कोड कुछ वर्गों पर कुछ स्थिर तरीकों के रूप में है जिन्हें बाद में अधिकांश परीक्षणों द्वारा बुलाया जाएगा। यही कारण है कि किसी भी परीक्षण निष्पादित करने से पहले मुझे कुछ कोड चलाने की जरूरत है। – AngryHacker

3

यूनिट टेस्ट फ्रेमवर्क आमतौर पर संपूर्ण परीक्षण स्थिरता और व्यक्तिगत परीक्षण दोनों के लिए सेट अप और "फाड़ें" विधियों का समर्थन करते हैं। MSTest आप जो तरीकों इन विशेषताओं के साथ जब चलाने के लिए निर्दिष्ट कर सकते हैं:

[ClassIntialize()] 
public void ClassInitialize() { 
    // MSTest runs this code once before any of your tests 
} 

[ClassCleanup()] 
public void ClassCleanUp() { 
    // Runs this code once after all your tests are finished. 
} 

[TestIntialize()] 
public void TestInitialize() { 
    // Runs this code before every test 
} 

[TestCleanup()] 
public void TestCleanUp() { 
    // Runs this code after every test 
} 

कहा करने के बाद कि, वर्ग इनिशियलाइज़ और सफाई तरीकों अगर आप ASP.NET इकाई परीक्षण चल रहे हैं के साथ सावधान रहना। यह ClassInitializeAttribute प्रलेखन में कहते हैं:

यह विशेषता नहीं ASP.NET इकाई परीक्षण पर,, इस्तेमाल किया जाना चाहिए कि है के साथ [HostType ("ASP.NET")] विशेषता किसी भी परीक्षण। आईआईएस और एएसपी.नेट की स्टेटलेस प्रकृति की वजह से, के साथ सजाए गए एक विधि को इस विशेषता को प्रति परीक्षण चलाने के बाद से अधिक कहा जा सकता है।

+0

एएसपी.नेट इकाई परीक्षणों के बारे में अच्छा जोड़ा! मैंने आधार वर्ग में [testInitialize] को परिभाषित करके इसके आसपास काम किया है। – Jowen

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

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