मुझे पता है कि आप एक निश्चित कक्षा में सभी परीक्षण चला सकते हैं:
mvn test -Dtest=classname
लेकिन मैं एक व्यक्तिगत विधि चलाना चाहता हूं और -Destest = classname.methodname काम नहीं करता।
मुझे पता है कि आप एक निश्चित कक्षा में सभी परीक्षण चला सकते हैं:
mvn test -Dtest=classname
लेकिन मैं एक व्यक्तिगत विधि चलाना चाहता हूं और -Destest = classname.methodname काम नहीं करता।
जवाबों:
मावेन में एक एकल परीक्षण विधि चलाने के लिए, आपको निम्न निर्देश देने होंगे:
mvn test -Dtest=TestCircle#xyz test
TestCircle
परीक्षण वर्ग नाम कहां है और xyz
परीक्षण विधि है।
वाइल्ड कार्ड वर्ण भी काम करते हैं; विधि नाम और वर्ग नाम दोनों में।
यदि आप एक मल्टी-मॉड्यूल प्रोजेक्ट में परीक्षण कर रहे हैं, तो उस मॉड्यूल को निर्दिष्ट करें जो परीक्षण के साथ है -pl <module-name>
।
एकीकरण परीक्षणों के लिए it.test=...
इसके बजाय विकल्प का उपयोग करें test=...
:
mvn -pl <module-name> -Dit.test=TestCircle#xyz integration-test
-pl <module-name>
।
-DfailIfNoTests=false
परीक्षण के बिना परियोजनाओं को छोड़ने के लिए उपयोग करें । No Tests Were Executed
जब आप रूट प्रोजेक्ट से परीक्षण चलाने का प्रयास करते हैं और बिना किसी परीक्षण के मॉड्यूल होते हैं।
mvn "-DTest=JoinTeamTestCases#validateJoinTeam" test
ध्यान दें कि "-टेस्ट" UPPER CASE 'T' से शुरू होता है।
2.12 के साथ एक मुद्दा है। यह मेरे लिए 2.12 से 2.11 तक मावेन-अस्फ़ेयर-प्लगइन बदलने से होता है:
mvn test -Dtest=DesignRulesTest
परिणाम:
[ERROR] लक्ष्य को निष्पादित करने में विफल। org.apache.maven.plugins: maven-Surefire-plugin: 2.12 : परीक्षण (डिफ़ॉल्ट-परीक्षण) प्रोजेक्ट pmd पर: कोई परीक्षण निष्पादित नहीं किया गया था!
mvn test -Dtest=DesignRulesTest
परिणाम: [INFO] --- मावेन-अचूक-प्लगइन: 2.11 : परीक्षण (डिफ़ॉल्ट-परीक्षण) @ pmd --- ... चल रहा है net.sourceforge.pmd.lang.java.rule.design.DesignRulesRest टेस्ट रन: 5 , विफलताएं: 0, त्रुटियां: 0, छोड़ दिया गया: 4, समय समाप्त: 4.009 सेकंड
@Category(IntegrationTest.class)
, तो उपयोग करें -Dit.test=ClassName
, अन्यथा आप No tests were executed!
नवीनतम प्लगइन संस्करणों के साथ भी प्राप्त करेंगे ।
मैं अपने TestNG के साथ क्या करता हूं, (क्षमा करें, JUnit इस का समर्थन नहीं करता है) परीक्षण के मामले हैं मैं एक समूह को उस परीक्षण को असाइन कर सकता हूं जिसे मैं चलाना चाहता हूं
@Test(groups="broken")
और फिर बस 'mvn -Dgroups = broken' चलाएं।
एकल टेस्ट क्लास में 2.7.3 संस्करण के साथ तरीकों का एक सेट चलाना, आप केवल एक टेस्ट क्लास में एन टेस्ट चला सकते हैं।
नोट: यह junit 4.x और TestNG के लिए समर्थित है।
आपको निम्न सिंटैक्स का उपयोग करना चाहिए
mvn -Dtest=TestCircle#mytest test
आप पैटर्न का भी उपयोग कर सकते हैं
mvn -Dtest=TestCircle#test* test
2.12.1 अचूक के रूप में, आप कई तरीकों का चयन कर सकते हैं (केवल इस समय JUnit4X, पैच का स्वागत है)
mvn -Dtest=TestCircle#testOne+testTwo test
एकल परीक्षणों के बारे में इस लिंक की जाँच करें
आप निम्न सिंटैक्स का उपयोग करके विशिष्ट परीक्षण वर्ग (तों) और विधि (एस) चला सकते हैं:
पूरा पैकेज: mvan test -Destest = "com.oracle.tests। **"
कक्षा में सभी विधि: mvan test -Dtest = CLASS_NAME1
एकल वर्ग से एकल विधि: mvan test -Dtest = CLASS_NAME1 # METHOD_NAME1
एकाधिक वर्ग से कई विधि: mvan test -Dtest = CLASS_NAME1 # METHOD_NAME1, CLASS_NAME2 # METHOD_NAME2
यह कमांड काम करता है !!
mvn "-DTest=JoinTeamTestCases#validateJoinTeam" test
ध्यान दें कि "-टेस्ट" UPPER CASE 'T' से शुरू होता है।
परीक्षण पैरामीटर tobrien ने उल्लेख आप एक विधि एक का उपयोग कर निर्दिष्ट कर सकते हैं # विधि नाम से पहले। यह JUnit और TestNG के लिए काम करना चाहिए। मैंने कभी इसकी कोशिश नहीं की, बस इसे अचूक प्लगिन पेज पर पढ़ें :
इस पैरामीटर को फ़ाइल नाम से अलग-अलग परीक्षण चलाने के लिए निर्दिष्ट करें, जिसमें शामिल / शामिल पैरामीटर को ओवरराइड करना शामिल है। आपके द्वारा यहाँ निर्दिष्ट प्रत्येक पैटर्न का उपयोग ** / $ {test} .java जैसे स्वरूपित एक पैटर्न बनाने के लिए किया जाएगा, इसलिए आप "foo / MyTest .java" नामक एकल परीक्षण चलाने के लिए "-Destest = MyTest" टाइप कर सकते हैं। इस पैरामीटर में ओवरराइड शामिल हैं / पैरामीटर शामिल हैं, और TestNG SuiteXmlFiles पैरामीटर। 2.7.3 के बाद से आप #myMethod या # my * एथोड जोड़ने के साथ टेस्ट में सीमित संख्या में विधि का निष्पादन कर सकते हैं। सी टाइप "-स्टेस्ट = मायटेस्ट # मायमेथोड" जूनिट 4.x और टेस्टनेग के लिए समर्थित है
JUnit के नए संस्करणों में श्रेणियाँ धावक शामिल हैं: http://kentbeck.github.com/junit/doc/ReleaseNotes4.8.html
लेकिन JUnit की रिलीज़ प्रक्रिया मावेन आधारित नहीं है, इसलिए मावेन उपयोगकर्ताओं को इसे अपने रिपॉजिटरी में मैन्युअल रूप से डालना होगा।
अचूक प्लगइन संस्करण के रूप में 2.22.1 (संभवतः पहले) आप 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="all-tests">
<classes>
<class name="server.Atest"/>
<class name="server.Btest"/>
<class name="server.Ctest"/>
</classes>
</test>
<test name="run-A-test">
<classes>
<class name="server.Atest"/>
</classes>
</test>
<test name="run-B-test">
<classes>
<class name="server.Btest"/>
</classes>
</test>
<test name="run-C-test">
<classes>
<class name="server.Ctest"/>
</classes>
</test>
</suite>
pom.xml के साथ
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
[...]
<properties>
<selectedTests>all-tests</selectedTests>
</properties>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
<configuration>
<suiteXmlFiles>
<file>src/test/resources/testng.xml</file>
</suiteXmlFiles>
<properties>
<property>
<name>testnames</name>
<value>${selectedTests}</value>
</property>
</properties>
</configuration>
</plugin>
</plugins>
[...]
</project>
कमांड लाइन से
mvn clean test -DselectedTests=run-B-test
आगे पढ़ने - परीक्षण का उपयोग कर मावेन अचूक प्लगइन
आप एक ही टेस्ट क्लास चला सकते हैं, लेकिन टेस्ट क्लास के भीतर एक भी तरीका नहीं। आप कक्षा के साधारण नाम का उपयोग करते हैं न कि पूरी तरह से कक्षा के योग्य नाम का। इसलिए, यदि आपके पास "org.sonatype.test.MyTest" में परीक्षण है और केवल वही परीक्षण है जिसे आप चलाना चाहते हैं, तो आपकी कमांड लाइन इस तरह दिखाई देगी:
mvn test -Dtest=MyTest
मेरी जानकारी के लिए, अचूक प्लगइन ऐसा करने का कोई तरीका प्रदान नहीं करता है। लेकिन एक मुद्दा खोलने के लिए स्वतंत्र महसूस :)
mvn test -Dtest=classname
सिंटैक्स का उपयोग कर सकते हैं ।