IntelliJ IDEA में कई मॉड्यूल से एक साथ यूनिट टेस्ट चलाएं


85

मैं एक ही बार में दो या अधिक IDEA मॉड्यूल से सभी परीक्षण कैसे चला सकता हूं?

मैं कई मॉड्यूल का उपयोग कर रहा हूं और अक्सर सभी यूनिट परीक्षणों को चलाने के लिए महत्वपूर्ण है और जब मैं चलाने के लिए एक से अधिक फ़ोल्डर चुनता हूं, तो संदर्भ मेनू पर कोई भी 'रन' विकल्प नहीं है।

जवाबों:


113

सबसे अच्छा तरीका तरीका: (3 साल बाद संपादित करें)

इसे हासिल करने का एक बेहतर तरीका और भी है।

  1. मेनू "रन" → "कॉन्फ़िगरेशन संपादित करें ..." चुनें। बाएं शीर्ष कोने में हरे रंग के प्लस पर क्लिक करें और JUnit का चयन करें।

  2. "पैटर्न" के लिए "टेस्ट तरह" का चयन करें और इस रीजेक्सप को ठीक वैसे ही दर्ज करें जैसे आप इसे देखते हैं: ^(?!.*IT$).*$(यह कैरेट से शुरू होता है ^और डॉलर के साथ समाप्त होता है $)। यह regexp कहता है: सभी परीक्षण जो उनके नाम पर IT के साथ समाप्त नहीं होते हैं

  3. "संपूर्ण प्रोजेक्ट में" परीक्षणों की खोज करें "चुनें। वर्किंग डायरेक्टरी को शीर्ष मॉड्यूल वर्किंग डायरेक्टरी में सेट किया जाना चाहिए (इसे डिफ़ॉल्ट रूप से सेट किया जाना चाहिए)।

  4. अपने टेस्ट के लिए एक नाम दर्ज करें जैसे "ऑल यूनिट टेस्ट"। मैं "शेयर" विकल्प को भी चिह्नित करता हूं ताकि यह कॉन्फ़िगरेशन बाद में गायब न हो। अप्लाई पर क्लिक करें और ओके करें।

अपनी आवश्यकताओं को पूरा करने के लिए आप इस रीजेक्सप के साथ प्रयोग कर सकते हैं।

मूल उत्तर:

यह उल्लेखनीय है, हालांकि यह आरामदायक नहीं है।

  1. पहले मॉड्यूल का चयन करें, test/javaनिर्देशिका पर राइट-क्लिक करें और "सभी टेस्ट चलाएं"। यह परीक्षण कॉन्फ़िगरेशन बनाता है।
  2. "कॉन्फ़िगर कॉन्फ़िगरेशन संपादित करें" चुनें और नए बनाए गए कॉन्फ़िगरेशन पर "साझा करें" जांचें ताकि यह सहेज लिया जाएगा।
  3. दूसरे मॉड्यूल का चयन करें, उस पर "सभी टेस्ट चलाएं", और इस कॉन्फ़िगरेशन पर "शेयर" की भी जांच करें।
  4. "लॉन्च से पहले" अनुभाग में, "+" पर क्लिक करें और "रन अन्य कॉन्फ़िगरेशन" चुनें और फिर पहले मॉड्यूल के कॉन्फ़िगरेशन का चयन करें।

इस तरह आप एक क्रम में विन्यास चलाते हैं और हर विन्यास को एक नया टैब मिलता है। फिर भी, कुछ नहीं से बेहतर है।


धन्यवाद! अब तक का सबसे साफ रास्ता। सोच रहा था कि 3 साल बाद इसे हासिल करने का कोई बेहतर तरीका है :)
CoderSpinoza

धन्यवाद! आपने मेरा समय बचाया और यह अब तक का सबसे चतुर तरीका है कि मैं एक ही शॉट में कई कवरेज रिपोर्ट जनरेशन और एकीकृत केस रनर समस्या दोनों को हल करने के लिए पा सकता हूं ।
फी

मैंने अभी अपने anser को एक बेहतर समाधान @CoderSpinoza
Tomasz Kalkosiński

10
अपडेट किया गया संस्करण इतना अच्छा नहीं है , अगर आपके परीक्षण के मामले इसके रन-टाइम के दौरान मॉड्यूल विशिष्ट संसाधनों का उपयोग करते हैं - मैं अभी भी मूल समाधान पसंद करता हूं।
फी

अपने ग्रेडल निर्भरता का सम्मान करने के लिए मुझे यह कॉन्फ़िगरेशन कैसे मिलेगा? अब, यह गुवा से लापता कक्षाओं पर विफल रहता है। एकल मॉड्यूल के परीक्षण चलाते समय, यह ठीक काम करता है।
Jorn

22

आपको "रन कॉन्फ़िगरेशन" बनाना होगा:

  1. "मेक" बटन के दाहिने हाथ पर शीर्ष पर ड्रॉपडाउन पर जाएं और उस पर क्लिक करें
  2. "कॉन्फ़िगरेशन संपादित करें" चुनें
  3. अब एक नया रन कॉन्फ़िगरेशन जोड़ने के लिए "+" बटन पर क्लिक करें और JUnit चुनें
  4. फिर, "रन कॉन्फ़िगरेशन" को कॉन्फ़िगर करते समय, आपको "टेस्ट काइंड" ड्रॉपडाउन मिलेगा, "डायरेक्टरी में सभी कक्षाएं" चुनें।
  5. उस निर्देशिका का चयन करें जिसे आप रूट के रूप में उपयोग करना चाहते हैं, आप अपनी परियोजना के लिए शीर्ष स्तर की निर्देशिका या अपने मॉड्यूल के लिए किसी भी निर्देशिका को चुन सकते हैं।
  6. इंटेलीज मॉड्यूल का चयन करें जहाँ से क्लासपाथ उठाते हैं (यह क्लास लेवल का टॉप प्रोजेक्ट हो सकता है)

टिप के लिए धन्यवाद, हालांकि यह समस्या को हल नहीं करता है। सही तरीका एक ही नहीं, बल्कि कई डायरियों का चयन करना होगा। पर्टियल समाधान पैटर्न का उपयोग करना है, लेकिन फिर भी केवल पैकेज को पैटर्न कर सकता है,
डायर

15
"टेस्ट काइंड" में "ऑल इन पैकेज" चुनें और फिर "पूरे प्रोजेक्ट में" चेकबॉक्स चुनें। जो सभी मॉड्यूल में परीक्षण चलाएगा।
मार्टिन ओधेलीस

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

@MartinOdhelius यह अब तक का सबसे साफ समाधान है
हेमिल

10

सभी मॉड्यूल का चयन करें, उन्हें राइट-क्लिक करें और सभी परीक्षण चलाने के लिए चुनें। यह "संपूर्ण प्रोजेक्ट" नामक एक कॉन्फ़िगरेशन बनाएगा जिसे आप किसी भी समय फिर से चला सकते हैं।

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

सभी मॉड्यूल का चयन करें

सभी मॉड्यूल का चयन करें

सभी परीक्षण चलाने के लिए राइट क्लिक करें और चुनें

सभी परीक्षण चलाने के लिए राइट क्लिक करें और चुनें

नया रन कॉन्फ़िगरेशन प्राप्त करें

नया रन कॉन्फ़िगरेशन प्राप्त करें


यह पहले चरण में एक से अधिक मॉड्यूल का चयन करने के लिए पर्याप्त है।
14:76 पर user7610

2
मेरी राय में यह स्वीकृत उत्तर होना चाहिए। मेरे पास एकमात्र आरक्षण शब्द "सबसे आसान" का उपयोग है। दुर्भाग्य से Intellij के साथ रन कॉन्फ़िगरेशन के बारे में कुछ भी आसान नहीं है। विन्यास के साथ सरल कार्य करने के कई तरीके हैं और आमतौर पर केवल एक ही है, यदि कोई काम है। तो आपका काम अक्सर सभी अलग-अलग विकल्पों के माध्यम से पुनरावृति करना है जो काम करता है। आसान नहीं है।
डेविड सैकस्टीन

यह परियोजना (संपूर्ण परियोजना) में सभी परीक्षण चलाता है , भले ही मैं मॉड्यूल के एक छोटे से अंश का चयन कर रहा हूं। यह वह नहीं है जिसकी मुझे चाहत है। मेरे मामले में सभी मॉड्यूल जिन्हें मैं साझा पैकेज के लिए परीक्षण चलाना चाहता हूं, इसलिए मैं परिणामी 'संपूर्ण परियोजना' कॉन्फ़िगरेशन को संपादित करने और पैकेज को जोड़ने में सक्षम हूं, जो केवल मॉड्यूल के सबसेट के लिए परीक्षण चलाने के लिए फ़िल्टर करता है।
अल्बर्ट विला कैल्वो

5

मेरे लिए दोनों समाधान काम नहीं किए या अपेक्षित काम नहीं किया।

मेरे लिए मेरे पास 3 मॉड्यूल हैं। मेरे मॉड्यूल निर्भरताएं इस तरह दिखती हैं

प्रस्तुति -> डोमेन -> डेटा

मैं बस सभी परीक्षणों को एक साथ निष्पादित करना चाहता था। इसलिए मैं 'एक्रॉस मॉड्यूल डिपेंडेंसीज़' दृष्टिकोण के साथ आया

मेरी सेटिंग्स इस तरह दिखती हैं:

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


2

यह मेरे लिए कई मॉड्यूल वाले प्रोजेक्ट के लिए काम करता है।

एक नया JUnit रन / डिबग कॉन्फ़िगरेशन बनाएँ। परीक्षण प्रकार: 'पैकेज में सभी' परीक्षण के लिए खोजें: 'संपूर्ण परियोजना'

आपको एक कार्यशील निर्देशिका भी निर्दिष्ट करनी होगी।


यही मैंने समाप्त कर दिया।
miva2

1

एक और स्पष्ट मामला नहीं है जब एक से अधिक परियोजनाओं पर कोड कवरेज की आवश्यकता होती है। भोला समाधान कई परियोजनाओं का चयन करने और एक ही बार में सभी इकाई परीक्षण चलाने के लिए होगा। जैसा कि यह पता चला है, अगर क्लासपैथ में परिवर्तन होता है और इंटेलीजे में रन रन कॉन्फ़िगरेशन के अनुसार एक क्लासपैथ प्रविष्टि होती है, तो यूनिट परीक्षण विफल हो सकते हैं। इस मामले में, परियोजनाओं पर क्रमिक रूप से इकाई परीक्षण चलाना वास्तव में पर्याप्त है। ऐसा इसलिए है क्योंकि प्रत्येक रन के अंत में IntelliJ (2017.2.5 कम्युनिटी एडिशन) पूछता है कि क्या एकत्रित कवरेज को प्रतिस्थापित किया जाना चाहिए या पहले से एकत्रित कवरेज आँकड़ों में जोड़ा जाना चाहिए।

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