2012-01-29 12 views
5

में विफल रहता है मुझे विजुअल स्टूडियो 2010 में यूनिट परीक्षण के साथ एक अजीब समस्या है। मेरे पास एक परीक्षण है जो "डीबग टेस्ट" का उपयोग करता है (बिना किसी ब्रेकपॉइंट्स के), लेकिन जब मैं "रन परीक्षण" का उपयोग करता हूं तो विफल रहता है। यह परीक्षण बाहरी डीएलएल का उपयोग करता है, इसलिए मैं इसे ठीक से डीबग नहीं कर सकता।वीएस -2010 में यूनिट परीक्षण - "डीबग" पास, "रन"

क्या आप किसी भी कारण से जानते हैं कि इस तरह की स्थिति क्यों संभव है? क्यों "डीबग टेस्ट" "रन परीक्षण" से अलग है, जब अन्य सभी पैरामीटर समान हैं?

+2

आप किसी भी है ' CondtionalAttribute' आपके कोड बेस में केवल डीबग के लिए निष्पादित करता है? कोई भी '#if डीबग 'अनुभाग? तीसरे पक्ष के पुस्तकालयों में यह पूरी तरह से संभव है कि वे डीबग बनाम रिलीज मोड में अलग-अलग चीजें करते हैं। – Oded

+0

ओडेड के प्रश्न में जोड़ना, क्या कोई विशिष्ट कोड है जो समय विशिष्ट है? कोड के किसी भी हिस्से को देरी की आवश्यकता हो सकती है जब आप डिबगिंग कर रहे हों लेकिन सामान्य प्रवाह में विफल हो जाएंगे। –

+0

क्या आपने परीक्षा परिणाम विंडो की जांच की है और देखें कि आप वहां क्या त्रुटि प्राप्त कर रहे हैं। –

उत्तर

2

कई कारण हो सकते हैं, लेकिन पिन-पॉइंट करने के लिए, आपको हमें काम करने के लिए कुछ कोड देना होगा।

#ifdef _DEBUG 
//do something 
#endif 

यह केवल डिबग मोड में निष्पादित किया जाएगा:

यह कोड बहिष्कार हो सकता है।

यह अनुकूलन हो सकता है। हालांकि उन्हें आम तौर पर व्यवहार को प्रभावित नहीं करना चाहिए, आपको विनाशकों पर भरोसा नहीं करना चाहिए या कन्स्ट्रक्टरों को कॉपी नहीं करना चाहिए।

यदि आप कोड के अंदर कोई हैकिंग कर रहे हैं, तो यह केवल डीबग के लिए मान्य भी हो सकता है।

1

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

3

स्विच समाधान डीबग के बजाय मोड रिलीज करने के लिए एक पूर्ण निर्माण चलाने के लिए, डिबग पर लौटते हैं और पुन: प्रयास और मुझे परिणाम पता है, मुझे लगता है कि परीक्षण पास होगा ....

+0

यह मेरी समस्या हल हो गया। धन्यवाद! – gstar

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