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