5

में एमएसटीएस्ट अस्थायी निर्देशिका को अक्षम करना मैं लगातार अपने कोड के निर्माण और परीक्षण के लिए टीमसिटी प्रोफेशनल का उपयोग कर रहा हूं।टीमसिटी

मेरे पास कुछ एमएसटीएस्ट आधारित परीक्षण हैं जो मेरे पीसी पर वीएस -2010 में ठीक काम करते हैं लेकिन बिल्ड सर्वर पर असफल होते हैं।

मैंने चारों ओर घूमते हुए पाया कि परीक्षण पर, टीमसिटी TEMP_DIR (कॉन्फ़िगर करने योग्य) में एक अस्थायी निर्देशिका बनाता है और परीक्षण डीएलएल में केवल "प्रथम संबंध" निर्भरताओं की प्रतिलिपि बनाता है।

उदाहरण के लिए: अपने परीक्षण NHibernate.dll जो अस्थायी निर्देशिका में प्रतिलिपि है लेकिन इसकी निर्भरता (अर्थात NHibernate.ByteCode.Castle) की नकल की नहीं मिलता का उपयोग करता है, और परीक्षण एक IO.FileNotFound अपवाद के साथ विफल रहता है।

क्या कोई तरीका है कि मैं परीक्षण परियोजना आउटपुट निर्देशिका (टेस्ट/बिन/डीबग) से परीक्षण चला सकता हूं?

यदि नहीं, तो मैं कैसे निर्दिष्ट कर सकता हूं कि कौन सी डीएलएल को temp निर्देशिका में कॉपी किया जाना चाहिए?

उत्तर

13

आप अपने समाधान में टेस्टसेटिंग फ़ाइल जोड़ सकते हैं जो सभी फ़ाइलों को तैनात करने के लिए वर्णन करेगा।

सबसे पहले, टेस्टसेटिंग फ़ाइल जोड़ें। इसे खोलें, और "परिनियोजन" टैब में, आपको आवश्यक सभी फ़ाइल जोड़ें (your .dll)। फिर टीमसिटी पर, एमएसटीएस्ट बिल्ड चरण में, "अतिरिक्त कमांड पैरामीटर" क्षेत्र में उपयोग करने के लिए टेस्टसेट सेटिंग्स फ़ाइल निर्दिष्ट करें। उदाहरण: "/testsettings:Local.Testsettings"

इस तरह, तैनाती वस्तुओं में निर्दिष्ट सभी फ़ाइलों को अस्थायी निर्देशिका में कॉपी किया जाएगा।

+0

बढ़िया, यह मेरा दिन बचाया, तुम दा आदमी! –

+3

इससे मुझे मदद मिली - धन्यवाद! दो नोट्स जो दूसरों की मदद कर सकते हैं: सबसे पहले, मैं TeamCity सेटिंग्स के लिए "MSTest रन कॉन्फ़िगरेशन फ़ाइल:" में xxx.Testsettings फ़ाइल निर्दिष्ट करने में सक्षम था। दूसरा, यह फ़ील्ड टीमसिटी में कार्यशील निर्देशिका से फ़ाइल के पथ की अपेक्षा करता है, जो अनिवार्य रूप से आपके भंडार का शीर्ष स्तर है। – ruttopia