सबसे पहले मैं SpecFlow के लिए नया हूं।SpecFlow: ClassInitialize और TestContext
मेरे पास एक फीचर फ़ाइल है जिसे मैं पूरी तरह से सेट अप सर्वर, डेटा एक्सेस सहित एक कार्यात्मक परीक्षण के रूप में चलाने के लिए एमएसटीएस्ट का उपयोग करके स्वचालित करना चाहता हूं ... इस उद्देश्य के लिए मुझे सर्वर को डेटा के साथ कॉन्फ़िगर करना होगा SpecFlow 'दिया गया' ब्लॉक और बाद में इसे शुरू करें। मुझे कुछ फ़ाइलों को टेस्ट की आउटपुट निर्देशिका में कॉपी करना होगा।
गैर-स्पीकफ़्लो कार्यात्मक परीक्षणों में मैं TestContext से TestDeploymentDir प्राप्त करने के लिए क्लासइनाइजलाइज विशेषता का उपयोग कर रहा था; कुछ इस तरह:
[ClassInitialize]
public static void ClassSetup(TestContext context)
{
TargetDataDeploymentRoot = context.TestDeploymentDir;
}
अब SpecFlow साथ मैं यह विशेषता अब और उपयोग नहीं कर सकते के रूप में यह SpecFlow से ही किया जाता है। कुछ नए गुण मौजूद हैं, जैसे पहले फीचर जो समान रूप से कार्य करता है लेकिन यह पैरामीटर के रूप में TestContext को पास नहीं करता है।
मुझे केवल अपने कार्यात्मक परीक्षण सर्वर को लॉच करने से पहले कुछ फ़ाइलों की प्रतिलिपि बनाने के लिए टेस्टकॉन्टेक्स्ट के टेस्ट डिप्लॉयमेंटडियर तक पहुंच प्राप्त करने की आवश्यकता है - SpecFlow के बिना आसानी से करने योग्य लेकिन SpecFlow के साथ लगभग असंभव है।
इस मुद्दे से कैसे निपटें?
क्या यह संभव है?
धन्यवाद सलाह के लिए बहुत कुछ!
रॉबर्ट
पर्यावरण:
- Visual Studio 2012
- SpecFlow 1.9.0.77
आप specflow के साथ अपने सुविधा fiels से MSTest परीक्षण उत्पन्न कर सकते हैं: //stackoverflow.com/questions/2984318/how-to-run-specflow-tests-in-visual-studio-2010 – nemesv
प्रतिक्रिया के लिए धन्यवाद। मैं पहले से ही अपनी फीचर फाइलों से एमएसटीएस्ट टेस्ट जेनरेट कर रहा हूं, लेकिन जैसा ऊपर बताया गया है, मेरे पास टेस्टकॉन्टेक्स्ट तक कोई पहुंच नहीं है। –
शायद [विधानसभा आरंभ] (http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.assemblyinitializeattribute (v = vs.80) .aspx) आपके परिदृश्य के लिए काम कर सकता है, specflow don इसका इस्तेमाल नहीं करें। अन्यथा वर्तमान 'MsTestGeneratorProvider' जेनरेट की गई फीचर फाइलों के साथ आपको सिद्ध 'टेस्टकॉन्टेक्स्ट' नहीं मिल सकता है। हालांकि आप 'MsTestGeneratorProvider' से प्राप्त कर सकते हैं और परीक्षण उत्पन्न कर सकते हैं जो specflow के अंदर कहीं भी' टेस्टकॉन्टेक्स्ट 'स्टोर करता है। – nemesv