मैं कमांड लाइन से JUnit परीक्षण मामलों को चलाना चाहूंगा। मैं यह कैसे कर सकता हूँ?
javac -cp "junit-4.12.jar; hamcrest-core-1.3.jar;." Tests.java
मेरे लिए काम किया। समाप्ति बिंदु पर ध्यान दें - यह महत्वपूर्ण है!
मैं कमांड लाइन से JUnit परीक्षण मामलों को चलाना चाहूंगा। मैं यह कैसे कर सकता हूँ?
javac -cp "junit-4.12.jar; hamcrest-core-1.3.jar;." Tests.java
मेरे लिए काम किया। समाप्ति बिंदु पर ध्यान दें - यह महत्वपूर्ण है!
जवाबों:
के लिए JUnit 5.x यह बताया गया है:
java -jar junit-platform-console-standalone-<version>.jar <Options>
Https://stackoverflow.com/a/52373592/1431016 पर एक संक्षिप्त सारांश और https://junit.org/junit5/docs/current/user-guide/#running-tests-console-launcher पर पूर्ण विवरण प्राप्त करें।
के लिए JUnit 4.x यह वास्तव में क्या है:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
लेकिन अगर आप JUnit 3.X का उपयोग कर रहे हैं तो ध्यान दें कि कक्षा का नाम अलग है:
java -cp .:/usr/share/java/junit.jar junit.textui.TestRunner [test class name]
आपको अपनी कक्षा की फाइलों के साथ क्लासपैथ में अधिक JAR या निर्देशिकाओं को जोड़ने की आवश्यकता हो सकती है और अर्धविराम (विंडोज) या कॉलन (UNIX / Linux) के साथ अलग कर सकते हैं। यह आपके पर्यावरण पर निर्भर करता है।
संपादित करें: मैंने वर्तमान निर्देशिका को एक उदाहरण के रूप में जोड़ा है। आपके वातावरण पर निर्भर करता है और आप अपने एप्लिकेशन का निर्माण कैसे करते हैं (बिन / या निर्माण कर सकते हैं / या यहां तक कि my_application.jar आदि)। नोट जावा 6+ क्लासपाथ में ग्लब्स का समर्थन करता है, आप कर सकते हैं:
java -cp lib/*.jar:/usr/share/java/junit.jar ...
आशा है ये मदद करेगा। परीक्षण लिखें! :-)
मावेन रास्ता
यदि आप मावेन का उपयोग करते हैं, तो आप अपने सभी परीक्षण मामलों को चलाने के लिए निम्न कमांड चला सकते हैं:
mvn clean test
या आप नीचे के रूप में एक विशेष परीक्षण चला सकते हैं
mvn clean test -Dtest=your.package.TestClassName
mvn clean test -Dtest=your.package.TestClassName#particularMethod
यदि आप टारगेट ट्रेस (यदि कोई है) को टारगेट \ n रिपोर्ट-रिपोर्ट फ़ोल्डर में रिपोर्ट फ़ाइलों के बजाय कंसोल में देखना चाहते हैं, तो उपयोगकर्ता गुण अचूक। उदाहरण के लिए:
mvn clean test -Dtest=your.package.TestClassName -Dsurefire.useFile=false
तरक्की का रास्ता
यदि आप ग्रैडल का उपयोग करते हैं, तो आप अपने सभी परीक्षण मामलों को चलाने के लिए निम्नलिखित कमांड चला सकते हैं:
gradle test
या आप नीचे के रूप में एक विशेष परीक्षण चला सकते हैं
gradle test --tests your.package.TestClassName
gradle test --tests your.package.TestClassName.particularMethod
यदि आप अधिक जानकारी चाहते हैं, तो आप विकल्पों पर विचार कर सकते हैं जैसे --stacktrace, या --info, या --debug।
उदाहरण के लिए, जब आप सूचना लॉगिंग स्तर --info के साथ ग्रेडल चलाते हैं, तो यह आपको प्रत्येक परीक्षण का परिणाम दिखाएगा जबकि वे चल रहे हैं। यदि कोई अपवाद है, तो यह आपको स्टैक ट्रेस दिखाएगा, जो बताता है कि समस्या क्या है।
gradle test --info
यदि आप समग्र परीक्षा परिणाम देखना चाहते हैं, तो आप ब्राउज़र में रिपोर्ट खोल सकते हैं, उदाहरण के लिए (उबंटू में Google क्रोम का उपयोग करके इसे खोलें):
google-chrome build/reports/tests/index.html
चींटी का रास्ता
एक बार जब आप अपनी Ant build file build.xml सेट कर लेते हैं, तो आप अपने JUnit परीक्षण के मामलों को कमांड लाइन से नीचे के रूप में चला सकते हैं:
ant -f build.xml <Your JUnit test target name>
आप एंट बिल्ड फ़ाइल में JUnit परीक्षणों को कॉन्फ़िगर करने के तरीके के बारे में अधिक पढ़ने के लिए नीचे दिए गए लिंक का अनुसरण कर सकते हैं: https://ant.apache.org/manual/Tasks/junit.html
सामान्य तरीका है
यदि आप मावेन, या ग्रैडल या एंट का उपयोग नहीं करते हैं, तो आप निम्नलिखित तरीके अपना सकते हैं:
सबसे पहले, आपको अपने परीक्षण मामलों को संकलित करने की आवश्यकता है। उदाहरण के लिए (लिनक्स में):
javac -d /absolute/path/for/compiled/classes -cp /absolute/path/to/junit-4.12.jar /absolute/path/to/TestClassName.java
फिर अपने परीक्षण मामलों को चलाएं। उदाहरण के लिए:
java -cp /absolute/path/for/compiled/classes:/absolute/path/to/junit-4.12.jar:/absolute/path/to/hamcrest-core-1.3.jar org.junit.runner.JUnitCore your.package.TestClassName
@Lzap ने जो जवाब दिया वह एक अच्छा समाधान है। हालाँकि, मैं यह जोड़ना चाहूंगा कि आपको जोड़ना चाहिए। वर्ग पथ के लिए, ताकि आपकी वर्तमान निर्देशिका बाहर न रह जाए, जिसके परिणामस्वरूप आपकी अपनी कक्षाएं छोड़ दी जाएंगी। कुछ प्लेटफार्मों पर मेरे साथ ऐसा हुआ है। तो JUnit 4.x के लिए एक अद्यतन संस्करण होगा:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
सुनिश्चित करें कि JUnit.jar आपके क्लासपाथ में है, फिर कंसोल से कमांड लाइन धावक को आमंत्रित करें
java org.junit.runner.JUnitCore [परीक्षण वर्ग का नाम]
संदर्भ: जूनिट FAQ
4.12 JUnit के साथ मेरे लिए निम्नलिखित काम नहीं किया:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
जाहिर है , JUnit 4.11 के बाद से आपको hamcrest-core.jar
अपने वर्गपथ में भी शामिल करना चाहिए :
java -cp .:/usr/share/java/junit.jar:/usr/share/java/hamcrest-core.jar org.junit.runner.JUnitCore [test class name]
java -cp .:/usr/share/java/junit4.jar org.junit.runner.JUnitCore [test class name]
खिड़कियों में यह है
java -cp .;/path/junit.jar org.junit.runner.JUnitCore TestClass
[परीक्षण वर्ग का नाम .class एक्सटेंशन के बिना]
उदाहरण के लिए:
c:\>java -cp .;f:/libraries/junit-4.8.2 org.junit.runner.JUnitCore TestSample1 TestSample2 ...
और इसी तरह, यदि किसी के पास एक से अधिक परीक्षण कक्षाएं हैं।
-cp क्लास के पथ के लिए खड़ा है और डॉट (।) मौजूदा क्लासपैथ का प्रतिनिधित्व करता है, जबकि सेमी कॉलोन (?) क्लास के लिए अतिरिक्त दिए गए जार को जोड़ता है, जैसा कि ऊपर दिए गए उदाहरण में junit-4.8.2 अब JUnitCore क्लास को निष्पादित करने के लिए क्लासपैथ में उपलब्ध है। यहां हमने अपनी परीक्षा कक्षाओं को निष्पादित करने के लिए उपयोग किया है।
ऊपर कमांड लाइन स्टेटमेंट आपको कमांड प्रॉम्प्ट (यानी MSDos) से जूनिट (संस्करण 4+) परीक्षण निष्पादित करने में मदद करता है।
नोट: JUnitCore जूनिट परीक्षणों को निष्पादित करने का एक पहलू है, यह मुखौटा जूनियर के 4+ संस्करणों में शामिल है।
यदि आपका प्रोजेक्ट मावेन-आधारित है तो आप टेस्ट-क्लास कस्टमटेस्ट से सभी टेस्ट-मेथड चला सकते हैं, जो अगली कमांड का उपयोग करके मॉड्यूल 'माय-मॉड्यूल' से संबंधित है:
mvn clean test -pl :my-module -Dtest=CustomTest
या अगले आदेश का उपयोग करके टेस्ट-क्लास कस्टमटेस्ट से केवल 1 टेस्ट-विधि myMethod चलाएं:
mvn clean test -pl :my-module -Dtest=CustomTest#myMethod
इस क्षमता के लिए आपको Maven Surefire Plugin v.2.7.3 + और Junit 4 की आवश्यकता है। अधिक जानकारी यहाँ है: http://maven.apache.org/surefire/maven-surefire-plugin/examples/single-test.html
वैकल्पिक रूप से आप जूनिटकोर क्लास में निम्न विधियों का उपयोग कर सकते हैं http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html
रन (रिक्वेस्ट, क्लास क्लास और रनर के साथ) या रनक्लास आपकी जावा फ़ाइल से।
यदि आप प्रोजेक्ट चींटी आधारित हैं, तो आपको कंसोल से कुछ ऐसा करने में सक्षम होना चाहिए:
ant test
यदि यह काम नहीं करता है, लेकिन फिर भी आपकी परियोजना चींटी आधारित है, तो आप ant -p
परियोजना के मुख्य लक्ष्यों को सूचीबद्ध करने के लिए दौड़ सकते हैं ।