इंटेलीज में, मैं मावेन टेस्ट गोल कैसे डिबग करूं?


83

Intellij और maven pom फ़ाइलों का उपयोग करके, मैं डेब्यू टेस्ट मावेन टेस्ट गोल के अंदर कैसे चलाऊँ?

जब मैं उन्हें सीधे कोड में चलाता हूं, तो यह प्रोफाइल के गुम होने के बारे में कुछ शिकायत करता है, जिसे मैंने intellij के Maven Projects के अंदर टिक किया है।

जवाबों:


25

अपने लक्ष्य और "डिबग [आपका लक्ष्य]" पर एक सही क्लिक के बारे में क्या है (आपके मामले में परीक्षण लक्ष्य)?

डिबग गोल


आह यह नहीं सोचा था। शुक्रवार की दोपहर बहुत देर हो चुकी है: डी थैंक्स।
JavaRocky

27
मान लें कि आप ब्रेकपॉइंट का उपयोग करना चाहते हैं, तो यह उत्तर अपर्याप्त है। इसके बजाय होवर का जवाब देखें।
डेविड ग्रूमेस

186

http://maven.apache.org/plugins/maven-surefire-plugin/examples/debugging.html

IDEA में, अपना परीक्षण डिबग मोड में चलाएं " mvn -DforkMode=never test"

अपडेट किया गया : "धावक" टैब में अपना रन / डिबग कॉन्फ़िगरेशन खोलें, जोड़ें-DforkMode=never

यहाँ छवि विवरण दर्ज करें

(@ Mikeapr4 द्वारा नोट किया गया: अचूक प्लगइन के नए संस्करण (2.14+) उपयोग mvn -DforkCount=0 test)


मेरे लिए वह काम कर गया। मैं आइडिया 10 में परीक्षण लक्ष्य को डिबग करने के लिए निम्नलिखित कमांड का उपयोग कर रहा हूं
स्वप्निल मुखर्जी

1
मेरी मल्टी-मॉड्यूल परियोजना में यह एकमात्र विकल्प था जिसने इंटेलीज के भीतर से मेरे लिए काम किया।
नैश

24
आईडीईए 11 के साथ, मुझे मावेन परियोजनाओं में मिला, मुझे उस मॉड्यूल के लिए परीक्षण पर राइट क्लिक करना पड़ा जिसे मैं परीक्षण करना चाहता था। इसने एक रन / डिबग कॉन्फ़िगरेशन बनाया। फिर इस नए कॉन्फ़िगरेशन को संपादित करें, रनर टैब पर क्लिक करें और Add -DforkMode = कभी भी VM विकल्प में न जाएं। ओके पर क्लिक करें। एक विराम बिंदु सेट करें, फिर नया डीबग कॉन्फ़िगर चलाने के लिए डीबग आइकन पर क्लिक करें। उपरोक्त का एक संयोजन, इसलिए युक्तियों के लिए धन्यवाद।
मूर्खता

इस दृष्टिकोण का उपयोग करके मेरे लिए IJ13 में @MarkM ब्रेकप्वाइंट का सम्मान नहीं किया गया है।
स्टीफनबॉस्च

10
अचूक प्लगइन (2.14+) उपयोग के नए संस्करणों को ध्यान में रखते हुए mvn -DforkCount=0 test, यह नीचे अन्य (भ्रामक) उत्तरों में उल्लिखित है, लेकिन वे याद किए जा सकते हैं।
mikeapr4

28

मैं निम्नलिखित विकल्पों के साथ परीक्षण निष्पादित करता हूं:

mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=6666 -Xnoagent -Djava.compiler=NONE" test

... और फिर दूरस्थ डिबगर के साथ मावेन से कनेक्ट करें।


क्या आपने लॉग 4 जे / लॉगिंग को काम करने के लिए प्रबंधित किया था? मैंने -Dlog4j.configuration = <path to log4j.properties> को भी शामिल किया है, लेकिन लॉगिंग स्टेटमेंट प्रिंट नहीं किए जा रहे हैं।
StephenBoesch

18

-DforkMode=never अब काम नहीं करता है, यह अब SureFire में पदावनत है।

-DforkCount=0इसके बजाय अचूक प्लगइन 2.14+ का उपयोग करते समय उपयोग करें ।


1
अचूक डॉक्स का उपयोग करने के लिए forkCountऔर reuseForksइसके बजाय कहते हैं , इसलिए मुझे लगता है कि ऊपर कहा गया था, " -DforkCount=0इसके बजाय का उपयोग करें ।" मैंने कोशिश की -DforkCount=0( reuseForksकोई बात नहीं अगर कोई कांटे नहीं हैं), लेकिन मेरा ब्रेकपाइंट कभी नहीं फंसा। यह -DforkMode=never(मावेन 3.2.1, आईडिया 13.1.2) के साथ यात्रा करता है ।
मिमीइंडेनहॉल

10

सवाल का जवाब दिया गया है। लेकिन सिर्फ अपने अनुभव को साझा करने के लिए। चयनित उत्तर से मेरी समस्या हल नहीं हुई। मेरे कोड में कई मॉड्यूल हैं।

मूर्खों के उत्तर ने मेरी समस्या पर बहुमूल्य जानकारी दी।

मेरे पास दो समाधान हैं, 1. एक VM विकल्प जोड़कर, अपनी IDEA का उपयोग करना -DforkMode=never; इसे डिबग मोड से चलाना चाहिए। 2. एक दूरस्थ डिबगिंग सेट करें , सॉकेट निर्दिष्ट करें और इस मामले में forkMode आवश्यक नहीं है।

यह सिर्फ एक सारांश है कि मैं किस माध्यम से गया हूं।


1

कॉलिन हेबर्ट से समाधान न तो मेरे लिए काम कर रहा है। लेकिन Fortunelly मुझे हरे रंग के त्रिभुज पर राइट क्लिक करके परीक्षण को डिबग करने का एक आसान तरीका मिला, टेस्ट विधि के बगल में दिखाई देता है:

जावा टेस्ट क्लास उदाहरण

मुझे आशा है कि thats तुम्हारी मदद करता है!


1
कृपया उस वर्ग का कोड पोस्ट करें और एक छवि का उपयोग न करें।
सामान्य ज्ञान

1
इस टिप्पणी के साथ मैं क्या योगदान देता हूं इंटेलीज पर एक खिड़कियां खोलकर डिबग करने का एक तरीका है। वर्ग का कोड महत्वहीन है।
डेविड डीआरएम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.