2010-11-11 12 views
5

के साथ यूनिट टेस्ट मैंने C# में प्रोग्राम लिखा था जो कमांड लाइन से MSTest को आमंत्रित करता है। परीक्षण मामलों में से एक StackOverflowException फेंकता है और इसका कारण यह है कि QtAgent32 (और मेरा आवेदन) प्रक्रिया टूट जाती है। इस स्थिति से बचने के लिए मैं क्या कर सकता हूं (मैं इकाई परीक्षण नहीं बदल सकता)?एमएसटीएस्ट - स्टैक ओवरव्लो एक्सेप्शन

+0

क्या आप अपना सी # कोड साझा कर सकते हैं? आदर्श रूप से एक ही संवाद बॉक्स सी # कोड से भी दिखाना चाहिए और यह सोच रहा हूं कि प्रक्रिया प्रारंभ इन्फॉर्म पैरामीटर के साथ इसका कोई संबंध है या नहीं? –

उत्तर

3

एक तरीका है जिसके द्वारा आप दुर्घटनाओं इस तरह से बच सकते हैं (QTAgent32.exe.config में legacyUnhandledExceptionPolicy संपत्ति की स्थापना और/या QTAgent.exe.config कर रहा है मशीन/testrun के सीधा के आधार पर) जैसा कि here बताया गया है। इस लिंक से प्रासंगिक पाठ है: -

अस्थायी संगतता माप के रूप में, व्यवस्थापक अनुप्रयोग कॉन्फ़िगरेशन फ़ाइल के अनुभाग में एक संगतता ध्वज रख सकते हैं। यह सामान्य भाषा रनटाइम को संस्करण 1.0 और 1.1 के व्यवहार में वापस करने का कारण बनता है।

यह "बिना क्रिया का अपवाद" व्यवहार से निपटने 1.1 शुद्ध करने के लिए स्विच जाएगा और इस प्रक्रिया ऐसे अपवादों पर क्रैश नहीं करेंगे।

+0

आपके उत्तर के लिए धन्यवाद। मैं बहुत उपयोगी था। – mirt

2

समस्या यह है कि आप .NET पर 2.StackOverflowException (2.0 संस्करण से शुरू) पर नहीं पकड़ सकते हैं। इसका शायद मतलब है कि आपके पास समस्या का समाधान करने का कोई तरीका नहीं है - क्योंकि यूनिट परीक्षण ढांचा बस अपवाद नहीं पकड़ सकता है।

अन्य धागे पर कुछ रोचक सुझाव हैं - उदाहरण के लिए, आप Thread बना सकते हैं और वर्तमान FrameCount जाँच ढेर अतिप्रवाह पहले पता लगाने के लिए कर सकते हैं। हालांकि, शायद यह बहुत विश्वसनीय नहीं होगा। तो, मुझे डर है कि कोई अच्छा जवाब है हूँ ...

+0

ठीक है, लेकिन जब मैं कमांड लाइन से एमएसटीएस्ट का आह्वान करता हूं (सी # कोड से नहीं), जब यह यूनिट परीक्षण निष्पादित होता है तो मैं केवल त्रुटि संदेश बॉक्स पर रद्द कर सकता हूं और एमएसटीएस्ट चलाना जारी रखता है। मुझे नहीं पता कि इस तरह कुछ कैसे करें लेकिन सी # कोड – mirt

+0

@ मिर्ट में - क्या आप उस अतिरिक्त जानकारी को मूल प्रश्न में जोड़ सकते हैं? वे अच्छे विवरण हैं। –

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