2009-10-30 15 views
8

में सिल्वरलाइट यूनिट टेस्ट को एकीकृत करें हम एक सादे वेनिला .नेट यूनिट टेस्ट प्रोजेक्ट बनाकर चांदी के प्रकाश परीक्षण परीक्षण बना रहे हैं, सभी संदर्भों को हटाकर एक unittestframework को छोड़कर, और फिर हमें आवश्यक एसएल असेंबली के संदर्भ जोड़ना (सिस्टम, सिस्टम। कोर, ...)। अधिक जानकारी के लिए, this ब्लॉग पोस्ट देखें। हम ऐसा कर सकते हैं, क्योंकि हम एमवीवीएम पैटर्न का पालन कर रहे हैं और कोडबेंड में कोई कोड नहीं है। हम दृश्य का परीक्षण नहीं कर रहे हैं, लेकिन पीछे की सभी परतों में कार्यक्षमता (मूल रूप से वीएम-एम)।टीएफएस बिल्ड

अब, यह हमें हर रात हमारी टीम में चांदी के लॉजिक का परीक्षण करने की अनुमति देता है। यह बहुत अच्छी तरह से काम करता है, जब तक हम एसएल परियोजनाओं और सामान्य .NET परियोजनाओं को मिश्रण शुरू नहीं करते। जब हम सभी एसएल यूनिट परीक्षणों का चयन करते हैं और उन्हें चलाते हैं, तो वे पास होते हैं। .NET इकाई परीक्षणों के लिए भी यही है। जब हम उन्हें एक बार में चलाते हैं, तो एक सेट या दूसरा पूरी तरह असफल हो जाता है। जो संदेश हम देख रहे हैं वह कहता है: "यूनिट टेस्ट एडाप्टर ने अपवाद फेंक दिया: अनुरोधित प्रकारों में से एक या अधिक लोड करने में असमर्थ। अधिक जानकारी के लिए लोडर अपवाद संपत्ति को पुनर्प्राप्त करें .."। मुझे लगता है कि मुद्दा यह है कि परीक्षण के इन दो सेट विभिन्न सिस्टम असेंबली का उपयोग कर रहे हैं, लेकिन मैं समस्या को इंगित करने में सक्षम नहीं हूं।

क्या किसी ने यह कोशिश की है? चीयर्स, फिल

उत्तर

1

मुझे लगता है कि ऐप डोमेन में एकाधिक सिस्टम, mscorlib, आदि पुस्तकालयों के साथ समस्याएं हैं जो शायद परीक्षण निष्पादन वातावरण को भ्रमित करती हैं।

क्या आप इसे टीएफएस बिल्ड के लिए कई परीक्षण रनों में विभाजित कर सकते हैं, या शायद उनमें से एक के लिए mstest.exe को कॉल करने के लिए कोड के साथ एक msbuild स्क्रिप्ट लिख सकते हैं और परिणाम प्राप्त कर सकते हैं?

+0

धन्यवाद जेफ, हमने इसे हमारी बिल्ड स्क्रिप्ट में दो बार mstest.exe को कॉल करके हल किया (एक बार .NET परीक्षणों के लिए, सिल्वरलाइट परीक्षणों के लिए एक बार)। – Phil

1

दो अलग-अलग बिल्ड परिभाषाओं का उपयोग करने के बारे में कैसे? वे दोनों एक ही तरीके से या एक ही समय में ट्रिगर कर सकते हैं। केवल अंतर यह है कि आपके पास सिर्फ एक में एसएल परियोजनाओं और सिर्फ .NET परियोजनाओं के संदर्भ में संदर्भ हैं।

यदि आप बिल्ड परिभाषा से परियोजनाओं का संदर्भ नहीं लेना चाहते हैं तो आप अपने निर्माण के साथ उपयोग करने के लिए कुछ समाधान बना सकते हैं और केवल एक समाधान में एसएल परियोजनाओं को संदर्भित कर सकते हैं और केवल नेट परियोजनाओं को संदर्भित कर सकते हैं।

1

आप सिल्वरलाइट टेस्ट प्रोजेक्ट (सिल्वरलाइट टूलकिट प्रोजेक्ट टेम्पलेट से बनाए गए) का भी उपयोग कर सकते हैं और अपने टीएफएस बिल्ड सर्वर पर अपने सिल्वरलाइट परीक्षण को चलाने के लिए this solution का उपयोग कर सकते हैं।