2010-08-12 9 views
7

मैं अपने 'चश्मा' वर्ग पुस्तकालय के app.config में इस तरह यह निर्दिष्ट करने के द्वारा MSTest फ्रेमवर्क (NUnit के बजाय) को लक्षित करने के Specflow कॉन्फ़िगर किया है:SpecFlow द्वारा उत्पन्न मेरे mstests को पहचानने के लिए VS2010 कैसे प्राप्त करें?

<configSections> 
    <section name="specFlow" 
    type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow"/> 
</configSections> 

<specFlow> 
<unitTestProvider name="MsTest.2010" /> 
</specFlow> 

तो एक बार यह जगह में है, मैं देख सकता हूँ कि, अपने परीक्षण जुड़नार सही ढंग से Specflow कस्टम उपकरण के द्वारा उत्पादित कर रहे हैं सही TestClassAttribute() और तरीकों, आदि के साथ:

[System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "1.3.3.0")] 
[System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 
[Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute()] 
... 

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

उत्तर

4

मैं एक Test Project और न केवल एक Class Library रूप में इस परियोजना से बनाना था - क्योंकि मैं NUnit और SpecFlow साथ विकास शुरू किया था, मैं एक वेनिला वर्ग पुस्तकालय बनाया था मेरी ऐनक कि NUnit सजाया विशेषताओं था धारण करने के लिए। मैंने सोचा कि मैं बस इस मौजूदा प्रोजेक्ट के ऐप.कॉन्फिग को सबसे हल्के ढांचे पर इंगित करने और एनयूनीट का उपयोग करना बंद कर सकता हूं, लेकिन वीसी -2010 ने specflow के कस्टम टूल द्वारा स्टब्स के सही निर्माण के बावजूद परीक्षणों को कभी पहचाना नहीं है।

तो ... मैंने अपने समाधान में एक नया Test Project जोड़ा, मेरे सभी स्पेक कोड को उस नई परियोजना में ले जाया गया, फिर पुन: संकलित किया गया, और व्हायोला, वीएस -2010 परीक्षणों को पहचानता है। मुझे यकीन है कि एक GUID है जो यह .csproj फ़ाइल के एक्सएमएल में खोज रहा है या ऐसा कुछ जो परीक्षण ढांचे को तारने के लिए कहता है, लेकिन मैंने इसे अभी तक खोला नहीं है।

उम्मीद है कि यह किसी की मदद करेगा।

8

प्रति Dror Helper के रूप में और Alex Duggleby आप अपने .csproj फ़ाइल में निम्न पंक्ति जोड़ना चाहेंगे:

<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> 

FileAlignment तत्व के बाद यह जोड़ें, और परियोजना को फिर से लोड। अब यह एक एमएस टेस्ट प्रोजेक्ट होना चाहिए और आपको इस परियोजना के संदर्भ में एमएस टेस्ट कार्यक्षमता मिलनी चाहिए। GUIDs मतलब है:

  • {3AC096D0-A1C2-E12C-1390-A8335801FDAB} - टेस्ट परियोजना
  • {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - सी # कक्षा लाइब्रेरी
-1

को बदलने के लिए एक परीक्षण परियोजना में अपने वर्ग पुस्तकालय परियोजना टेम्पलेट, .csproj को संशोधित करने और निम्न पंक्ति जोड़ें:

<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> 
पहले संपत्ति समूह तत्व को

:

<PropertyGroup> 
    <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> 
संबंधित मुद्दे