2012-10-01 14 views
29

मैं एक पोर्टेबल क्लास लाइब्रेरी का परीक्षण करने का प्रयास कर रहा हूं जिसे मैंने बनाया है और मैं यह सुनिश्चित करना चाहता हूं कि यह उसी फ्रेमवर्क सबसेट के साथ परीक्षण किया जा रहा है जो इसे लक्षित करता है।आप .NET पोर्टेबल क्लास लाइब्रेरी के लिए यूनिट टेस्ट असेंबली कैसे बनाते हैं?

Per the Visual Studio ALM + Team Foundation Server blog, एमएसटीएस्ट यूनिट परीक्षण ढांचे को विजुअल स्टूडियो 2012 आरसी में पीसीएल में परिवर्तित कर दिया गया था; हालांकि, मैं पोर्टेबल क्लास लाइब्रेरी बनाने में असमर्थ हूं और फिर वीएस2012 आरटीएम में एमएसटीएस्ट फ्रेमवर्क का संदर्भ देता हूं।

  • "संदर्भ" संवाद में ब्राउज़िंग मुझे दिखाती है कि कोई यूनिट परीक्षण घटक पीसीएल के साथ संगत के रूप में पंजीकृत नहीं हैं।
  • प्रोजेक्ट फ़ाइल में मैन्युअल GAC संदर्भ जोड़ना Microsoft.VisualStudio.QualityTools.UnitTestFramework पर एक संदर्भ उत्पन्न करता है जो बिल्ड त्रुटि नहीं मिला है।
  • C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ReferenceAssemblies\v4.0\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll पर मैन्युअल प्रत्यक्ष असेंबली संदर्भ जोड़ना एक बिल्ड चेतावनी उत्पन्न करता है कि यूनिटटेस्टफ्रेमवर्क असेंबली एक असंगत mscorlib संस्करण का संदर्भ देता है।

मैं (एक प्रारंभिक जवाब देने के लिए धन्यवाद) एक परियोजना प्रकार Unit Test Library (Windows Store apps)C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0\ExtensionSDKs\MSTestFramework\11.0\References\CommonConfiguration\neutral\Microsoft.VisualStudio.TestPlatform.UnitTestFramework.dll पर एक अलग MSTest विधानसभा संदर्भ है कि वहाँ मिला। यह प्रोजेक्ट प्रकार एक छोटा नो-यूआई विंडोज स्टोर ऐप बनाता है ... मैनिफेस्ट और सब कुछ के साथ पूरा करें। यह मुझे यह निर्दिष्ट करने की अनुमति नहीं देता कि मैं कौन से ढांचे को लक्षित कर रहा हूं - ऐसा लगता है कि यह केवल विंडोज स्टोर ऐप्स के लिए है।

संभवतः दोषपूर्ण धारणा है कि मैं इकाई परीक्षण विधानसभाओं कि पुस्तकालय-अंडर-परीक्षण के रूप में एक ही ढांचे सबसेट को लक्षित के साथ अपने पोर्टेबल कक्षा लाइब्रेरी परियोजनाओं का परीक्षण किया जाना चाहिए के तहत ...

मैं कैसे बना सकता हूँ एक .NET पोर्टेबल कक्षा पुस्तकालय के लिए एक इकाई परीक्षण असेंबली?

(मैं कर रहा हूँ अन्य चौखटे के लिए खुला है कि यह भी PCL लक्षित करते हैं, मैं सिर्फ वर्तमान में MSTest के अलावा अन्य समाधान है कि खाते में ले लिया है से अनभिज्ञ हूं।)

उत्तर

0

पोर्टेबल परीक्षण पुस्तकालय Windows 8 एसडीके किया जा रहा है यहां स्थित (मेरे लिए):

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0\ExtensionSDKs\MSTestFramework\11.0\References\CommonConfiguration\neutral\Microsoft.VisualStudio.TestPlatform.UnitTestFramework.dll 

आप देखेंगे कि इसमें एक आर्ट क्लास और आवश्यक [टेस्ट XXX] विशेषताएं हैं। यदि मैं एक पोर्टेबल लाइब्रेरी प्रोजेक्ट बनाता हूं और उस असेंबली के संदर्भ को जोड़ता हूं, तो विजुअल स्टूडियो का टेस्ट एक्सप्लोरर [TestMethod] विशेषता के साथ चिह्नित परीक्षण दिखाएगा, लेकिन यह उन्हें निष्पादित नहीं करेगा।

+0

मुझे यकीन नहीं है कि यह यहां पूछताछ करने में कैसे मदद कर रहा है? यदि आप सवाल पूछने की कोशिश कर रहे हैं, तो विवरण दें और एक नया प्रश्न खोलें। –

+0

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

+0

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

2

जहां तक ​​मुझे पता है कि इस समय यूनिटस्टिंग के लिए कोई पीसीएल पुस्तकालय नहीं है।

लेकिन मैं कि होनहार और लक्ष्य वास्तव में लगता है कि तुम क्या जरूरत है GitHub पर इस परियोजना पाया:

https://github.com/jbtule/PclUnit

यह Nunit रूप में एक ही इकाई परीक्षण शैली इस प्रकार है, लेकिन यह भी XUnit से कुछ सामान उधार है, तो यह होना चाहिए इसे समायोजित करने के लिए काफी आसान हो।

4

xUnit अब पीसीएल इकाई परीक्षण के लिए समर्थन है; http://xunit.github.io/

+0

क्या आप मुझे दस्तावेज में इंगित कर सकते हैं कि पूर्ण रूप से एक पीसीएल इकाई परीक्षण असेंबली के साथ पूर्ण .NET 4.5 के विरुद्ध चलने के बजाए लक्षित फ्रेमवर्क सबसेट के खिलाफ परीक्षणों को कैसे सुनिश्चित किया जाए? जो मैं देखता हूं, उससे जुनीट समर्थन सिर्फ पीसीएल के रूप में आपकी टेस्ट असेंबली लिखने के लिए है, यह सुनिश्चित नहीं करता कि रनर भी उस सबसेट में निष्पादित हो ... लेकिन मैं दस्तावेज़ों को याद कर सकता हूं। –

+1

अब मैं बेहतर समझ रहा हूं कि आप क्या खोज रहे हैं ... आप गलत चीज़ का परीक्षण करने पर छू रहे हैं; अगर कोड पीसीएल compat है। इसे प्रत्येक मंच पर समान चलाना चाहिए। विशेष रूप से एक इकाई परीक्षण परिप्रेक्ष्य से मुझे लगता है कि आपको मंच के बारे में परवाह नहीं करना चाहिए। हालांकि यदि आप एकीकरण परीक्षण कर रहे हैं तो मंच महत्वपूर्ण है। फिर xUnit शायद आपको अभी मदद नहीं करेगा।लेकिन देखें: https://github.com/xunit/devices.xunit आप वहां योगदान देना चाहेंगे। – noocyte

+1

हमने ऑटोफैक को बनाए रखने के दौरान पाया है कि पीसीएल टूलिंग अचूक नहीं है। यह कभी-कभी गलत प्लेटफ़ॉर्म सबसेट चुन सकता है। वास्तविक प्लेटफॉर्म सबसेट पर चलने वाले परीक्षण से चीजों को सही तरीके से काम करने में मदद मिलेगी। –

0

मेरे पास विंडोज स्टोर & विंडोज फोन के लिए एक सार्वभौमिक ऐप है जो मेरे व्यू मॉडल्स के साथ एक पीसीएल युक्त है। मैंने अभी एक यूनिट टेस्ट प्रोजेक्ट बनाया है और व्यूमोडेल को 'लिंक्ड फाइल' के रूप में जोड़ा है।यह सिर्फ एक छोटा परीक्षण है जो एक हैलो वर्ल्ड एप्लिकेशन में स्ट्रिंग की जांच करता है, लेकिन ऐसा लगता है कि यह काम करता है।

केवल समय बताएगा कि यह समाधान परीक्षण की मेरी भविष्य की आवश्यकताओं को पूरा करता है या नहीं।

1

हाल ही में इस प्रश्न के बाद, मैंने एक नए समाधान के लिए चीजों को सेट करने की कोशिश की और मुझे Portable Class Library मिला है जिसे मैं अब यूनिट परीक्षण कर सकता हूं। मुझे याद नहीं वास्तव में क्या मैं पहले की कोशिश की, लेकिन यहाँ है कि मैं क्या अभी काम मिल गया है:

  • दृश्य स्टूडियो प्रीमियम 2013 अद्यतन 4
  • एक प्रकार की परियोजना Portable Class Library
  • एक Windows Forms परियोजना
  • एक सार्वभौमिक और एक विंडोज, एक विंडोज फोन से मिलकर अनुप्रयोग एक ....Shared परियोजना
  • एक यूनिट टेस्ट परियोजना

...Shared सार्वभौमिक से परियोजना App.xaml फ़ाइल के अलावा खाली है, इसलिए इसका वास्तव में उपयोग नहीं किया जा रहा है।

यूआई युक्त सभी परियोजनाएं Portable Class Library प्रकार की परियोजना का संदर्भ देती हैं, और वे सभी एक ही कोड का उपयोग करके काम करते हैं।

यूनिट टेस्ट परियोजना भी Portable Class Library से कोड का संदर्भ है, मैं संदर्भ हमेशा की तरह जोड़ा (दाएं References, Add reference पर क्लिक करें और फिर Solution से पीसीएल परियोजना चुनें -। Projects

समाधान संरचना के रूप में है नीचे स्क्रीनशॉट पर दिखाया:

enter image description here

मैं पूरी तरह कि समस्या क्या था जब मैं पिछले साल से काम कर रहा पूरे पीसीएल इकाई परीक्षण बात करने की कोशिश के रूप में यकीन नहीं है, लेकिन अब ऐसा लगता है कि यह काम करना चाहिए।

यदि आवश्यक हो तो अधिक जानकारी मांगने के लिए स्वतंत्र महसूस करें, यदि संभव हो तो मैं सहायता करने की कोशिश करूंगा।

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