2014-04-04 7 views
11

मैं वीएस 2010 से वीएस 2013 तक एक बड़ा समाधान माइग्रेट कर रहा हूं। हमारे पास कुछ हजार परीक्षण हैं जो एक .runsettings फ़ाइल का उपयोग करते समय नहीं चलते हैं। हमारी पिछली टेस्ट सेटिंग्स फ़ाइल .testsettings प्रकार का था। मेरी समझ (बहुत निराश गूगलिंग के बाद) यह है कि नए परीक्षण धावक VSTest का उपयोग करने के लिए आपको एक .runsettings फ़ाइल का उपयोग करने की आवश्यकता है। मैं इस फ़ाइल का समर्थन करने के लिए बहुत अधिक दस्तावेज नहीं ढूंढ पाया है। यह मूल रूप से उपलब्ध एक संसाधन है: http://msdn.microsoft.com/en-us/library/vstudio/jj635153.aspx.unsettings में तैनाती आइटम

हमारी पिछली। Testsettings फ़ाइल में तैनाती वस्तुओं के लिए एक बड़ा अनुभाग था जो अब नहीं पाया जा सकता है और इस प्रकार परीक्षण तुरंत विफल हो जाते हैं। समस्या यह है कि मुझे यह पता लगाना प्रतीत नहीं होता है कि तैनाती आइटम सहित एक .runsettings फ़ाइल में अभी भी एक विकल्प है।

<Deployment> 
    <DeploymentItem filename="C:\Solution\Project\SomeSettings.xml" outputDirectory="C:\Solution\Project\bin" /> 
</Deployment> 

क्या नया। क्रांसेटिंग परीक्षण सेटिंग प्रारूप तैनाती आइटम करने का समर्थन करता है?

उत्तर

7

.runsettings.testsettings साथ के रूप में तैनाती के आइटम का समर्थन नहीं करता है उसी तरह दुर्भाग्य से, और मैं एक के लिए यह बहुत निराशा के लिए के रूप में यह निर्भरता को विस्तृत करने के बहुत साफ रास्ता नहीं था। .runsettings (DeploymentEnabled) में इससे संबंधित एक सेटिंग है, लेकिन यह सब नियंत्रण नियंत्रण प्रतीत होता है, एप्लिकेशन की आउटपुट निर्देशिका की बजाय एक अलग निर्देशिका में परीक्षण चला रहा है।

ज्यादा परीक्षण और त्रुटि के बाद, मैं समाप्त हो गया बस अपना परीक्षण परियोजनाओं में सभी .csproj फ़ाइलों को बदल दृश्य स्टूडियो में गुण विंडो में एक CopyIfNewer निर्माण कार्रवाई करने के लिए, ताकि सभी निर्भरता तो वे आउटपुट फ़ोल्डर में नकल की जाएगी परीक्षण चलाते समय पाया जाएगा।

मुझे लगता है कि सभी ने बताया कि मैंने उन्हें फिर से चलाने के लिए सभी परीक्षणों को अपडेट करने में लगभग 2-3 घंटे बिताए।

प्लस तरफ, चीजें अब बहुत तेजी से चलती हैं क्योंकि सभी बाइनरी को संकलित करने के बाद एक नई निर्देशिका में कॉपी करने की आवश्यकता नहीं होती है, क्योंकि सबकुछ "इन-प्लेस" चलाता है।

+0

मेरे पास एक समान समस्या है, लेकिन वास्तव में आपके समाधान को समझ नहीं सका। मुझे कई फ़ोल्डर्स कॉपी करने की आवश्यकता होगी जिन्हें मैं कॉपी करना चाहता हूं। ये फ़ोल्डर्स टेस्ट प्रोजेक्ट के बजाए संबंधित डीएलएस पर हैं। मुझे आगे कैसे बढ़ना चाहिए? धन्यवाद –

+0

आपको या तो मैन्युअल रूप से प्रोजेक्ट फ़ाइल (जैसे एक लिंक किए गए आइटम के रूप में) की प्रतिलिपि बनाने की आवश्यकता है, या कस्टम एमएसबिल्ड पोस्ट-बिल्ड एक्शन बनाने के लिए उन्हें उस स्थान पर कॉपी करने की आवश्यकता होगी जिसमें आपको उनकी आवश्यकता है। –

+0

धन्यवाद मार्टिन। अंत में, मैं अपने परिदृश्य पर [डिप्लॉयमेंट इटैम] विशेषताओं का उपयोग करके और अपने परीक्षणों द्वारा विस्तारित करने के लिए आधार वर्ग बनाने के द्वारा इसे हल करने में सक्षम था। सही सापेक्ष पथों को समझने के लिए कुछ समय लगा, लेकिन ठीक काम किया। –

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