2009-05-13 15 views
6

उम्मीद है कि एक आसान सवाल JMockit साथ काम नहीं करेंगे .....डीबगर किसी के लिए यहाँ

मैं रेड 7.5.2 का उपयोग कर रहा है, और JUnit परीक्षण लिख रहा हूँ। मैं उन्हें जुनीट 3 के साथ बस ठीक लिख रहा था, और फिर मैं कुछ फ़ंक्शन कॉल करना चाहता था। इसलिए मैंने jmockit 0.9.7 और जूनिट 4.6 को लोड किया। मैं भी शामिल हूं- javaagent: jmockit.jar एक वीएम तर्क के रूप में।

जब मैं "जूनिट टेस्ट के रूप में चलाता हूं", तो इसमें कोई समस्या नहीं होती है (कम से कम, कोई भी जिसे मैं आउटपुट पर देख सकता हूं)। जुनीट का आउटपुट अच्छा है, और कंसोल पर कोई त्रुटि नहीं डाली जाती है।

जब मैं "जुनीट टेस्ट के रूप में डीबग" करता हूं, तो यह काम नहीं करेगा। यह मेरे में बाहर उदासीनता:

InstrumentationImpl.class ->

नहीं मिला स्रोत ... और जब मैं जारी ....

NativeMethodAccessorImpl.class मारा -> स्रोत

नहीं मिला

... और जब मैं जारी मारा ...

JUnit इस के बाद समाप्त होता है। sun.reflect.NativeMethodAccessorImpl.invoke पर sun.reflect.NativeMethodAccessorImpl.invoke0 (मूल निवासी विधि) पर धागा "मुख्य" java.lang.reflect.InvocationTargetException में


अपवाद: यह सांत्वना के लिए निम्न उदासीनता (NativeMethodAccessorImpl.java:79) sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) पर java.lang.reflect.Method.invoke (Method.java:618) पर sun.instrument.InstrumentationImpl.loadClassAndCallPremain पर (InstrumentationImpl.java:160) इसके कारण: java.lang.UnsatisfiedLinkError: सूर्य/उपकरण/इंस्ट्रुमेंटेशन Impl.redefineClasses0 ([Ljava/लैंग/साधन/ClassDefinition;) वी sun.instrument.InstrumentationImpl.redefineClasses (InstrumentationImpl.java:98 पर) mockit.internal.RedefinitionEngine.redefineMethods पर (RedefinitionEngine.java:197) mockit.internal.RedefinitionEngine.redefineMethods पर (RedefinitionEngine.java:184) mockit.internal.RedefinitionEngine.redefineMethods (RedefinitionEngine.java:116) mockit.internal.RedefinitionEngine.setUpInternalStartupMock (RedefinitionEngine.java:53) mockit.internal.Startup.loadInternalStartupMocks पर पर (स्टार्टअप पर । जावा: 123) mockit.internal.Startup.in आरंभ करें (Startup.java:110) mockit.internal.Startup.premain (Startup.java:97) ... 5 और

गंभीर त्रुटि: -javaagent का संसाधन विफल


मैं दोनों JUnit 3 और JUnit 4 कोई समस्या नहीं के साथ अपने परीक्षण पर चला सकते हैं जब मैं -javaagent उपयोग करें, यह है: (डीबगर के साथ jmockit.jar; अपने आप से वे ठीक हैं) कि चीजें बदसूरत हो जाती हैं, और मुझे jmockit सामान का उपयोग करने के लिए ऐसा करना है।

विचार?

+0

मुझे कोई अन्य समस्या है, जो बाइनरी वास्तव में स्रोत कोड से तालमेल नहीं करता था। – zinking

उत्तर

1

मैं नियमित रूप से है कि डिबग मोड में (के साथ और "-javaagent" JVM तर्क के बिना) JMockit का उपयोग JUnit परीक्षण चलाने के लिए, और किसी भी मुद्दे नहीं था।

क्या आप वाकई "JUnit टेस्ट के रूप में डीबग" विन्यास के लिए classpath है "JUnit टेस्ट के रूप में चलाने के लिए" के समान हैं? चूंकि आप एक UnsatisfiedLinkError मिला है, यह हो सकता है कुछ जार फ़ाइल गुम नहीं है।

हैं कि त्रुटि के कारण नहीं है, तो शायद यह कुछ रेड 7.5.2 के लिए विशिष्ट है ...

+0

यह भी रेड 7.5.5 के साथ हो रहा है; याकूब के रूप में एक ही लक्षण वर्णन किया। – Greg