12

पर काम नहीं कर रहा है हमें NNnit से MSTest तक जाने के लिए कहा जाता है और अब सभी मौजूदा परीक्षणों को नए प्लेटफॉर्म में परिवर्तित करना होगा। इसमें से अधिकांश ठीक हो गए लेकिन हमें पैरामीटरयुक्त परीक्षणों के साथ कोई समस्या है। हमें निम्न वेबसाइट मिलती है जो दिखाती है कि एक्सटेंशन कैसे लिखना है और इसके लिए कोड डाउनलोड किया गया है।यूनिट परीक्षण - विजुअल स्टूडियो यूनिट टेस्ट टाइप का विस्तार -

"इकाई परीक्षण विस्तार प्रारंभ करने में विफल 'कलश: RunAsTestClassAttribute':

http://blogs.msdn.com/b/vstsqualitytools/archive/2009/09/04/extending-the-visual-studio-unit-test-type-part-2.aspx

हालांकि, हालांकि यह ठीक संकलित, RowTestClass परीक्षण सभी निम्न त्रुटि संदेश के साथ चलाने के लिए असफल एक यूनिट टेस्ट एक्सटेंशन निम्न विशेषता के लिए पंजीकृत नहीं है: Microsoft.VisualStudio.Test.Sample.UnitTestTypeExtension.RunAsSample.RunAsTestClassAttribute। "

हम VS2010 (10.0.40219.1 SP1Rel) (माइक्रोसॉफ्ट .NET फ्रेमवर्क संस्करण 4.0.30319 SP1Rel) का उपयोग कर रहे

मुझे आश्चर्य है कि अगर यह निम्नलिखित पुस्तकालयों के साथ कुछ है:

Microsoft.VisualStudio.QualityTools.Common.dll 
Runtime Version: v2.0.50727 

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.VisualStudio.QualityTools.Common.dll 

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 
Runtime Version: v4.0.30319 

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 

Microsoft.VisualStudio.QualityTools.Vsip.dll 
v4.0.30319 

C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualStudio.QualityTools.Vsip\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.QualityTools.Vsip.dll 

इस काम को पाने के लिए कोई मदद बहुत सराहना की।

+0

आपको अपनी यूनिट परीक्षण विधि में पैरामीटर पास करने की आवश्यकता क्यों है? –

+0

मूल रूप से प्रत्येक परीक्षण पैरामीटर के लिए एक ही कोड दोहराना नहीं है। यह कोड क्लीनर को लॉग इन करने या बयान स्विच करने या बाहरी फाइलों या डेटाबेस पर निर्भरता बनाने जैसे तर्कों का उपयोग करने से बचने से बचाता है। – ArchiFactor

+0

मेरे पास टेस्ट विधि एक और गैर-परीक्षण विधि कॉल करेगी जो पैरामीटर स्वीकार करती है और उचित दावे करता है। –

उत्तर

0

बस ब्लॉग पोस्ट Extending Unit Tests in Visual Studio देखें। और देखें कि आप क्या चूक सकते हैं। मैंने कोशिश की, और यह मेरे लिए अच्छा काम करता है।

1

क्या आपने नए प्रकार पंजीकृत किए हैं (Windows Registry में)? the tutorial में इसे कैसे करें पर एक अनुभाग है - पंक्ति परीक्षण टेस्ट प्रकार एक्सटेंशन: अपने परीक्षण प्रकार एक्सटेंशन पर पंजीकरण करें।

यदि आपको समस्या हो रही है, तो MSDN code gallery से पूरा कोड + रजिस्ट्री कुंजी डाउनलोड करने का प्रयास करें।

1

आप अपने परीक्षणों को अधिक पैरामीटरयुक्त बनाने के लिए SpecFlow का उपयोग करना चाहते हैं। यह परंपरागत रूप से एक बीडीडी उपकरण है, लेकिन यह आपको पैरामीटर लेने वाले पुनः उपयोग करने योग्य चरणों को करने की अनुमति देगा।

उदाहरण के लिए आप एक कदम कह

"Given the user 'admin' exists." 

और ग # तरफ आप इस तरह एक विधि मिल बना सकते हैं:

[Given(@"the user '(.*)' exists"] 
public void GivenTheUserExists(string name) 
{ 
    //create the user 
} 

आने वाले समय में आप किसी भी "सुविधा फ़ाइल में कदम पुनः उपयोग कर सकते "उस चरण के कार्यान्वयन को फिर से लिखने के बिना।

+1

यह मूल प्रश्न का उत्तर कैसे देता है? क्या आप सिर्फ स्पेकफ्लो का विज्ञापन कर रहे हैं? – AdrianHHH

+0

मैं इकाई परीक्षण पैरामीटर करने के लिए एक कम जटिल समाधान प्रदान कर रहा था। यदि वह एक मुफ्त टूल विज्ञापन कर रहा है तो हाँ मैं इसका विज्ञापन कर रहा हूं। – bobby

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