मैं सही बैट फ़ाइल बनाने के बारे में सोच रहा हूं,

मैं Maven + Selenium(TestNG) . का उपयोग कर रहा हूं

मैंने अपवाद को हल करने के लिए कई अलग-अलग तरीकों की कोशिश की है, लेकिन यह सबसे आम अपवादों में से एक है: मुख्य वर्ग / java.lang.ClassNotFoundException को ढूंढ या लोड नहीं कर सका

मेरे मेवेन प्रोजेक्ट में कोई बिन या lib फ़ोल्डर नहीं है, और मैं इसके लिए सोच रहा हूं। लाइब्रेरी को .m2(Maven) इंस्टालेशन से कॉल करना है या नहीं।

क्लास फ़ाइल को कॉल करने के लिए, मेरे मावेन प्रोजेक्ट में .class फ़ाइल कुछ इस तरह स्थित है: E:\testBatchDemo\target\classes\mytest

मैंने अब तक जो कोशिश की है उसका नमूना यहां दिया गया है,

set projectLocation=E:\testBatchDemo
cd %projectLocation%   
set classpath=E:\testBatchDemo\target\classes\mytest; 
java -cp %classpath% C:\Users\Desktop-pc\.m2\repository\org\testng\testng\6.14.3\testng-6.14.3.jar; C:\Users\Desktop-pc\.m2\repository\org\seleniumhq\selenium\selenium-java\3.12.0\selenium-java-3.12.0.jar; org.testng.TestNG %projectLocation%\testng.xml
pause

कोई भी कृपया सहायता कर सकता है, किस पुस्तकालय को कॉल करने की आवश्यकता है या मैं सही .class पथ कैसे प्राप्त कर सकता हूं।

0
Ishita Shah 28 जून 2018, 14:31

1 उत्तर

सबसे बढ़िया उत्तर

आपके प्रश्न विवरण के अनुसार मुझे लगता है कि कुछ ग्रे क्षेत्र हैं जिन्हें हमें समाधान में कूदने से पहले संबोधित करने की आवश्यकता है।

  • मैं सही batch (यानी .bat) फ़ाइल बनाने के बारे में सोच रहा हूं: मूल रूप से, Maven एक बिल्ड टूल है जो व्यापक रूप से pom.xml के संयोजन में काम करता है और इसके लिए किसी Windows बैच की आवश्यकता नहीं होती है फ़ाइल।
  • अगर आपका यूज़केस Windows बैच फ़ाइल को जेनकिंस सतत एकीकरण के लिए तो आपको इस चरण को सत्यापित करने की आवश्यकता है यदि Windows बैच फ़ाइल आपके < के निष्पादन को किक-स्टार्ट करने में सक्षम है एम>टेस्ट सूट।
  • हालांकि जेनकिंस आपके टेस्ट सूट के निष्पादन को pom.xml और Maven के माध्यम से भी शुरू कर सकते हैं।

अब, आपका यूजकेस नीचे बताए अनुसार ऊपर बताई गई किसी एक आवश्यकता से मेल खाना चाहिए:

  • Windows बैच फ़ाइल + TestNG
  • जेनकिंस + TestNG
  • जेनकिंस + मावेन

जैसा कि आपने Windows बैच फ़ाइल के बारे में विस्तार से बताया है, इसलिए पहले विकल्प Windows बैच फ़ाइल + TestNG के अनुसार प्रासंगिक विवरण यहां दिए गए हैं:

  • TestNG के @Test एनोटेशन के साथ एक साधारण कोड ब्लॉक इस प्रकार लिखें:

    package demoJenkins;
    
    import org.testng.annotations.Test;
    
    public class DemoJenkinsJob 
    {
    
        @Test
        public void testJenkins()
        {
    
            System.out.println("Welcome to Jenkins World");
        }
    }
    
  • इस रूप में चलाएं TestNG Test

  • सफल निष्पादन पर TestNG -> Convert to TestNG और testng.xml का उपयोग करके कन्वर्ट बन जाता है।
  • testng.xml ऐसा दिखेगा:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
    <suite name="Suite">
      <test name="Test">
        <classes>
          <class name="demoJenkins.DemoJenkinsJob"/>
        </classes>
      </test> <!-- Test -->
    </suite> <!-- Suite -->
    
  • अपने आईडीई (यानी ग्रहण) से संपूर्ण परियोजना स्थान प्राप्त करें, उप-निर्देशिका में ब्राउज़ करें, एक निर्देशिका बनाएं lib मजबूत>

  • lib निर्देशिका में सभी प्रासंगिक जार और लाइब्रेरी (सेलेनियम और TestNG जार) को कॉपी करें।

    • selenium-server-standalone-3.13.0.jar
    • org.testng_6.14.2.r201802161450.jar
    • com.beust.jcommander_1.72.0.jar
    • org.apache-extras.beanshell.bsh_2.0.0.b6.jar
    • org.yaml.snakeyaml_1.17.0.jar
  • CLI के माध्यम से प्रोजेक्ट निर्देशिका में ब्राउज़ करें और निम्न वर्गपथ प्रदान करें:

    >set classpath=<Project Directory>\bin;<Project Directory>\lib\*;
    
  • CLI के माध्यम से testng.xml को निम्नानुसार निष्पादित करें:

    Project_Directory>java org.testng.TestNG testng.xml
    
  • सफल निष्पादन पर, प्रोजेक्ट निर्देशिका के भीतर एक नया टेक्स्ट दस्तावेज़ बनाएं और निम्न कोड जोड़ें:

    java -cp bin;lib/* org.testng.TestNG testng.xml
    
  • फ़ाइल को run.bat . के रूप में सहेजें

  • Windows बैच फ़ाइल run.bat निष्पादित करें और सत्यापित करें कि यह टेस्ट सूट को अपेक्षित रूप से निष्पादित करता है।

अद्यतन

आपके प्रश्न और उसके बाद की टिप्पणी के अनुसार,

  • जब आप TestNG और/या Maven का उपयोग करते हैं, तो ये फ़्रेमवर्क/बिल्डटूल सभी प्रासंगिक जार को उनके संबंधित स्थान पर रखता है। लेकिन जब आप मैन्युअल रूप से बिल्डपथ को कॉन्फ़िगर करना चाहते हैं तो आपको मैन्युअल रूप से lib निर्देशिका बनानी होगी और संबंधित जार की एक प्रति रखनी होगी।

  • शायद आपको अपने जावा प्रोग्राम के सफल संकलन पर मैन्युअल रूप से बिन निर्देशिका बनाने की आवश्यकता नहीं है, आपका प्रोग्राम स्वचालित रूप से बिन बनाएगा और रखता है निष्पादन से पहले वर्ग फ़ाइल।

1
DebanjanB 29 जून 2018, 12:48