आयात org.junit हल नहीं किया जा सकता है


114

मुझे एक साक्षात्कार के लिए एक जावा समस्या को हल करने की आवश्यकता है, और उन्होंने मुझे परीक्षण वर्ग भेजा है। इसके साथ शुरू होता है

import org.junit.Before;

और स्थानों पर निम्नलिखित सिंटैक्स भी है:

@RunWith(JUnit4.class)
...
@Before
...
@Test

मैंने थोड़ी देर में जावा का उपयोग नहीं किया है इसलिए यह मुझे थोड़ा भ्रमित करता है। मैंने ग्रहण डाउनलोड किया और जब मैं इस परीक्षण फ़ाइल को संकलित करने की कोशिश करता हूं तो आयात और @ संकेतों पर त्रुटियां होती हैं। आयात त्रुटि फेंकता है:

The import org.junit cannot be resolved.

और @RunWith भी मान्यता प्राप्त नहीं है क्योंकि यह एक प्रकार से हल करने की कोशिश करता है।


1
आपने नेट पर क्या खोजा है? आप चाहते हैं कि हम आपको एक विस्तृत विवरण दे सकें कि आप JUnit 4 टेस्ट केस कैसे चला सकते हैं? (संकेत: JUnit4.classआपके कोड में यह है)
लुइगी मेंडोज़ा


1
आपको प्रोजेक्ट में junit jar फ़ाइल जोड़ने की आवश्यकता है। आप junit-dep-4.8.2.jar का उपयोग कर सकते हैं। तब आप राइट क्लिक करें और रन को जूनियर टेस्ट केस के रूप में चुन सकते हैं
कृष्ण

2
क्या आपने ग्रहण में अपने निर्माण पथ में ज्यूनिट की जार फ़ाइल जोड़ी है?
प्रदीप सिंह

बस, मुझे बस इस सवाल पर गुगली करनी चाहिए थी। सहायता के लिए धन्यवाद।
SKLAK

जवाबों:


192

आपको junitअपने प्रोजेक्ट के क्लासपैथ में लाइब्रेरी जोड़ना होगा । आपके विकास सेटअप के आधार पर इसे प्राप्त करने के लिए कई विकल्प हैं।

  1. कमांड लाइन : कमांड लाइन इनवोकेशन के मामले में, आपको junit.jarअपने आवेदन के क्लासपाथ के साथ जोड़ना होगा java -cp /path/to/junit.jarयहां जवाबों पर एक नजर डालें ।

  2. ग्रहण का उपयोग करना : ग्रहण के वितरण को इस पुस्तकालय के साथ बांधा जाता है और इस तरह से आप इसे अपनी परियोजना के लिए उपयोग कर सकते हैं। ग्रहण परियोजना पर राइट क्लिक करें और नेविगेट करें:

गुण -> जावा बिल्ड पाथ -> लाइब्रेरी -> लाइब्रेरी जोड़ें -> जनीत -> जून ३/४

उन परिदृश्यों में जहां आप जार के किसी भिन्न संस्करण का उपयोग करना चाहते हैं, ऊपर दिए गए Add Library पर क्लिक करने के बजाय आपको Add External Jar पर क्लिक करना चाहिए और फ़ाइल सिस्टम पर लाइब्रेरी का पता लगाना चाहिए ।


1
@NishantShreshth किसी mavenप्रोजेक्ट में इसे कैसे जोड़ा जाए ?
कसुन सियामबलपिटिया

मैंने गुण के माध्यम से JUnit 4 को जोड़ा -> जावा बिल्ड पथ, लेकिन हर अब और फिर ग्रहण मुझे अभी भी इस त्रुटि को दिखाता है, हालांकि परीक्षण चलाना समस्याओं के बिना संभव है। ग्रहण को फिर से शुरू करने से समस्या हल हो जाती है - थोड़ी देर के लिए। इसके लिए कोई स्पष्टीकरण?
थॉमस डब्ल्यू

मेरे लिए काम नहीं करता है। जैसे ही प्रोजेक्ट मॉड्यूलर होता है, लाइब्रेरी टैब के सभी बटन ग्रे होते हैं। (ग्रहण 2019-09 और जावा 11.0.4 के साथ)।
गायरो गियरलोज़

14

ग्रहण परियोजना पर राइट-क्लिक करें और नेविगेट करें:

गुण -> जावा बिल्ड पाथ -> लाइब्रेरी -> लाइब्रेरी जोड़ें -> जनीत -> जून ३/४

यह मेरा काम करता है।


6

आप इस लाइन पर "@Test" जैसी लाइन को आसानी से खोज सकते हैं और फिर क्विकफिक्स "जोड़ जून 4 लाइब्रेरी बनाएँ" का उपयोग कर सकते हैं। मुझे लगता है कि यह परियोजना में मैन्युअल रूप से जूनट जोड़ने से अधिक तेज़ है।


यह मेरी स्थिति में इसे हल नहीं करता है। JUnit पूरी तरह से मार्ग में है, लेकिन यह त्रुटि दिखाता रहता है।
आईटी

1
मेरे लिए काम करता है ^ ^
जंपिंग_मनकी

6

यदि आप मावेन का उपयोग करते हैं और कोड का यह टुकड़ा mainफ़ोल्डर में स्थित है , तो इसे testफ़ोल्डर में स्थानांतरित करने का प्रयास करें ।


3
@VigneshrajSekarbabu क्योंकि लोग आमतौर पर junitगुंजाइश निर्धारित करते हैं test, जिसका अर्थ है कि वे केवल परीक्षण फ़ोल्डर में काम करेंगे।
सेरेना

धन्यवाद @searene .. मैंने src / main / java में अपना TestBase करने की कोशिश की, लेकिन तब testNG एनोटेशन प्राप्त करने में सक्षम नहीं था। इसलिए src / test / java में चला गया। लेकिन अब, मैं src / main / java में एक RetryAnalyzer बनाने की कोशिश कर रहा हूँ और IRetrAnalyzer org.testng में है जो कि मैं src / main / java क्लासेस में नहीं ले पा रहा हूँ। किसी भी विचार यह क्या हल कर सकता है?
विग्नेशराज सेकरबाबू

@VigneshrajSekarbabu एक तरीका यह है कि अपने परीक्षण-संबंधी निर्भरता के दायरे की जांच करें, सुनिश्चित करें कि वे नहीं हैं test, ताकि आप अंदर की हर चीज का उपयोग कर सकें /src/main/java
सेरेन

5

यदि आप ग्रहण का उपयोग कर रहे हैं और मावेन प्रोजेक्ट पर काम कर रहे हैं, तो उपरोक्त चरण भी काम करते हैं।

अपने रूट फ़ोल्डर पर राइट-क्लिक करें।

Properties -> Java Build Path -> Libraries -> Add Library -> JUnit -> Junit 3/4

यहाँ पर Step By Step निर्देश


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

2

सीम टू जूनिट जार फ़ाइल पथ में नहीं है यह भी सुनिश्चित करें कि आप jdk1.5 या इसके बाद के संस्करण का उपयोग कर रहे हैं।


सिर्फ जार ही नहीं, ओपी को इसे ज्यूनिट टेस्ट के रूप में चलाना चाहिए (हो सकता है कि ओपी पूछेगा कि जावा क्लास को कैसे चलाया जाए, अगर उसके पास नहीं हैpublic static void main(String[] args)
लुइगी मेंडोज़ा

JUnit लिंक करना नहीं जानता था। मैं यह समझ गया। प्रोजेक्ट नाम पर राइट क्लिक करें, और JUnit लिंक करें। धन्यवाद।
SKLAK

2

यदि आप जावा 9 या उससे ऊपर का उपयोग कर रहे हैं तो आपको अपने मॉड्यूल-info.java में कनिष्ठ निर्भरता की आवश्यकता हो सकती है

module myModule {
    requires junit;
}

मुझे पूरा यकीन है कि मैं जिस मुद्दे का सामना कर रहा हूं, वह वही है जो मूल प्रश्न इस नए मॉड्यूल तंत्र से जुड़ा हुआ है। अब मैंने इस लाइन को अपने मौजूदा मॉड्यूल-info.java में जोड़ दिया और पैकेज एक्सप्लोरर में कोई और रेड क्रॉस नहीं है, लेकिन स्रोत में सब कुछ समान है।
आईटी

2

मावेन का उपयोग करने पर आप 'मावेन / अपडेट प्रोजेक्ट ...' पर क्लिक और चला सकते हैं।

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


जब मैं ऐसा करता हूं, तो मॉड्यूल-info.java त्रुटियों से भर जाता है और लैम्ब्डा को मान्यता नहीं दी जाती है। ग्रहण / मावेन ने लाइब्रेरी और जावा संस्करण को 1.5 में बदल दिया है, और मेरे पास <plugin> <groupId> org.apache.maven.plugins </ groupId> <विरूपण साक्ष्य> maven-compiler-plugin </ विरूपण साक्ष्य> <संस्करण> 3.8 है .0 </ संस्करण> <कॉन्फ़िगरेशन> <रिलीज़> 11 </ रिलीज़> </ कॉन्फ़िगरेशन> </ प्लगइन> मेरे पोम में
गायरो गियरलोज़

1

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

प्रोजेक्ट के लिए पुस्तकालयों को आयात करने के लिए:

Right Click on the Project --> Properties --> Java Build Path --> Libraries -> Add Library -> 'Junit' or 'TestNG'

जून लाइब्रेरियों को जोड़ें


1

जब आप अपने Maven निर्भरता में TestNG जोड़ते हैं, तो परीक्षण से लेकर कंपाइल तक का दायरा बदलें। इससे आपकी समस्या हल हो जाएगी।


कृपया ऐसे सुझावों को टिप्पणी के रूप में रखने पर विचार करें।
हेड्स

1

आपको pom.xml फ़ाइल में Junit निर्भरता जोड़ने की आवश्यकता है, इसका मतलब है कि आपको नवीनतम संस्करण के साथ अपडेट करने की आवश्यकता है।

<dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency> 

0

यदि आप अपना खुद का टेस्ट क्लास बनाना चाहते हैं। ग्रहण में फाइल -> नई -> जे यूनिट टेस्ट केस पर जाएं । फिर आप विज़ार्ड पॉप-अप के भीतर अपने सभी पथ और परीक्षण वर्ग सेटअप चुन सकते हैं।


-1

Pom.xml में नवीनतम JUnit संस्करण में अपडेट करें। इससे मेरा काम बनता है।


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