2013-02-20 66 views
15

के भीतर नियमित जावा प्रोग्राम के समान जुनीट परीक्षणों को कैसे डिबग करें, ग्रहण में, यदि मैं कोई ब्रेकपॉइंट्स के साथ डीबग मोड में जावा प्रोग्राम चलाता हूं, और यदि JVM एक NullPointerException को हिट करता है, तो ग्रहण कोड की अपमानजनक रेखा को कृपया हाइलाइट करेगा, और स्थानीय चर, आदि दिखाएं निष्पादन रोक दिया गया है। मैं प्रदर्शन टैब का उपयोग कर कोड का मूल्यांकन कर सकता हूं, और इसी तरह।एक्लिप्स

लेकिन, अगर मैं डीबग मोड में एक जुनीट परीक्षण चलाता हूं, और जेवीएम एक नलपॉन्टर अपवाद को हिट करता है, तो जेवीएम रोक नहीं देता है, और मुझे स्थानीय चर देखने का मौका नहीं है।

क्या यह जुनीट परीक्षण चलाने के लिए संभव है ताकि जब मैं ब्रेकपॉइंट्स का उपयोग किये बिना एक NullPointerException दबाता हूं तो JVM स्वचालित रूप से रुक जाएगा?

संपादित करें: JUnit 4 & जूनो का उपयोग

+0

मुझे लगता है कि यह कहने का सही तरीका है, जुनीट परीक्षणों के भीतर ग्रहण के पोस्ट-मॉर्टम डिबगिंग का उपयोग कैसे करें। – Eddified

+3

क्या आपने 'java.lang.NullPointerException' के लिए अपवाद ब्रेकपॉइंट सेट किया है या स्टैकट्रैस द्वारा निर्दिष्ट लाइन पर ब्रेकपॉइंट सेट किया है? – beny23

+0

मुझे एक डुप्लिकेट प्रश्न मिला: http://stackoverflow.com/questions/13611711/junit-4-and-suspend-on-exception – Eddified

उत्तर

0

ग्रहण बंद हो जाता है जब जो अपवाद फेंक दिया गया है वह बेकार है और आपको मुख्य() से बाहर निकाल देगा। हालांकि, जब आप जुनीट फ्रेमवर्क के साथ भागते हैं, तो सभी अपवाद ज्यूनिट द्वारा पकड़े जाते हैं, इसलिए ग्रहण बंद नहीं होता है।

दो समाधान दिमाग में आते हैं:

  • सेट अपवाद brekpoint को रोकने के लिए जब एनपीई
  • अपवाद के स्टैक ट्रेस JUnit द्वारा रिपोर्ट का उपयोग करें और लाइन है कि अपवाद (जो फेंकता पर ब्रेकपाइंट सेट फेंक दिया जाता है एक मैं पसंद करता हूँ)।
0

आप JUnit टैब पर देख सकते हैं, यदि आप लाइन एक समस्या है जो पर डबल क्लिक करें, तो आप स्थान पर पहुंच जाएंगे जहां अशक्त-सूचक अपवाद हो गई।

java.lang.NullPointerException  <--First line of the error 
at.com.myProject.MyClass.myMethod(MyClass.java:theLineOfMyCode) <-- the line that you should double-click 

ऐसा करने के बाद, आपको त्रुटि की रेखा पर रीडायरेक्ट कर दिया जाएगा। ब्रेकपाइंट

  • उपयोग डीबग मोड

  • +4

    मुझे ये सब पता था। प्रश्न यह है कि अपवाद के बिंदु पर JVM के निष्पादन को कैसे रोकें, अपवाद के स्थान को कैसे नहीं ढूंढें। – Eddified

    2
    1. डबल क्लिक करें सेट कोड की है कि लाइन पर

    होवर ग्रहण में चलाने के लिए, और उसके बाद क्लिक करने के लिए step over या f6