আমি জানি আপনি একটি নির্দিষ্ট ক্লাসে সমস্ত পরীক্ষা চালাতে পারেন:
mvn test -Dtest=classname
তবে আমি একটি পৃথক পদ্ধতি চালাতে চাই এবং -পরিমানা = শ্রেণীকরণ.মোথডনেমটি কাজ করছে বলে মনে হয় না।
আমি জানি আপনি একটি নির্দিষ্ট ক্লাসে সমস্ত পরীক্ষা চালাতে পারেন:
mvn test -Dtest=classname
তবে আমি একটি পৃথক পদ্ধতি চালাতে চাই এবং -পরিমানা = শ্রেণীকরণ.মোথডনেমটি কাজ করছে বলে মনে হয় না।
উত্তর:
মাভেনে একটি একক পরীক্ষা পদ্ধতি চালানোর জন্য আপনাকে নিম্নলিখিত কমান্ডটি প্রদান করতে হবে:
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
আপনি যখন রুট প্রকল্প থেকে পরীক্ষা চালানোর চেষ্টা করেন এবং পরীক্ষা ছাড়াই মডিউল থাকে happens
mvn "-DTest=JoinTeamTestCases#validateJoinTeam" test
নোট করুন যে "-DTest" শুরু হয় UPPER CASE 'T' দিয়ে।
নিশ্চিতফায়ার 2.12 নিয়ে একটি সমস্যা রয়েছে। 2.12 থেকে 2.11 থেকে maven-surefire- প্লাগইন পরিবর্তন করে আমার সাথে এটি ঘটে:
mvn test -Dtest=DesignRulesTest
ফলাফল:
[ERROR] org.apache.maven.plugins: maven-surefire-પ્લગઇન: 2.12 : পরীক্ষা (ডিফল্ট-পরীক্ষা) প্রকল্পের পিএমডে কার্যকর করতে ব্যর্থ : কোনও পরীক্ষা কার্যকর করা হয়নি!
mvn test -Dtest=DesignRulesTest
ফলাফল: [আইএনএফও] --- মেভেন-শিফারফায়ার-প্লাগইন: ২.১১ : পরীক্ষা (ডিফল্ট-পরীক্ষা) @ পিএমডি --- ... নেট.সোর্স.এমপিডি.লং.জাভা.রুলে.ডিজাইন.ডিজাইনআরুলস টেস্ট টেস্ট চালাচ্ছে: ৫ , ব্যর্থতা: 0, ত্রুটিগুলি: 0, এড়িয়ে গেছে: 4, সময় অতিবাহিত হয়েছে: 4.009 সেকেন্ড
@Category(IntegrationTest.class)
, ব্যবহার করুন -Dit.test=ClassName
, না হলে আপনি No tests were executed!
সর্বশেষতম প্লাগইন সংস্করণগুলি পেয়ে যাবেন ।
আমি আমার টেস্টএনজি দিয়ে যা করি, (দুঃখিত, জুনিত এটি সমর্থন করে না) পরীক্ষার কেসগুলি হ'ল আমি যে পরীক্ষা চালাতে চাই তার জন্য একটি গ্রুপ নির্ধারণ করতে পারি
@Test(groups="broken")
এবং তারপরে কেবল 'mvn -Dgroups = ভাঙা' চালান।
একক টেস্ট ক্লাসে পদ্ধতিগুলির একটি সেট চলমান সংস্করণ ২.7.৩ সহ আপনি একক টেস্ট শ্রেণিতে কেবল এন পরীক্ষা চালাতে পারবেন।
দ্রষ্টব্য: এটি জুনিট 4.x এবং টেস্টএনজির জন্য সমর্থিত।
আপনাকে অবশ্যই নিম্নলিখিত সিনট্যাক্সটি ব্যবহার করতে হবে
mvn -Dtest=TestCircle#mytest test
আপনি নিদর্শনগুলিও ব্যবহার করতে পারেন
mvn -Dtest=TestCircle#test* test
নিশ্চিতফায়ার ২.১১.১ হিসাবে, আপনি একাধিক পদ্ধতি নির্বাচন করতে পারেন (এই সময়ে JUnit4X, প্যাচগুলি স্বাগত)
mvn -Dtest=TestCircle#testOne+testTwo test
একক পরীক্ষা সম্পর্কে এই লিঙ্কটি দেখুন
আপনি নিম্নলিখিত বাক্য গঠন ব্যবহার করে নির্দিষ্ট পরীক্ষা শ্রেণি (এস) এবং পদ্ধতি (গুলি) চালাতে পারেন:
পূর্ণ প্যাকেজ: এমভিএন পরীক্ষা -পরেস্ট = "com.oracle.tests। **"
ক্লাসে সমস্ত পদ্ধতি: এমভিএন পরীক্ষা -পরেস্ট = CLASS_NAME1
একক শ্রেণি থেকে একক পদ্ধতি: এমভিএন পরীক্ষা -পরেস্ট = CLASS_NAME1 # METHOD_NAME1
একাধিক শ্রেণি থেকে একাধিক পদ্ধতি: এমভিএন পরীক্ষা -পরেস্ট = CLASS_NAME1 # METHOD_NAME1, CLASS_NAME2 # METHOD_NAME2
এই আদেশ কাজ করে !!
mvn "-DTest=JoinTeamTestCases#validateJoinTeam" test
নোট করুন যে "-DTest" শুরু হয় UPPER CASE 'T' দিয়ে।
পরীক্ষা পরামিতি tobrien দ্বারা আপনাকে উল্লেখ করেছে একটি পদ্ধতি একটি ব্যবহার নির্দিষ্ট করার অনুমতি দেবে # পদ্ধতি নাম আগে। এটি JUnit এবং TestNG এর জন্য কাজ করা উচিত। আমি এটি কখনও চেষ্টা করে দেখিনি, কেবল তা শিয়ারফায়ার প্লাগইন পৃষ্ঠায় পড়ুন :
ফাইলের নাম দ্বারা পৃথক পরীক্ষা চালানোর জন্য এই পরামিতিটি নির্দিষ্ট করুন, প্যারামিটারগুলিকে অন্তর্ভুক্ত / বাদ দেয় over আপনি এখানে উল্লেখ করেছেন এমন প্রতিটি প্যাটার্ন ** / $ {পরীক্ষা j। জাভা জাতীয় বিন্যাসিত বিন্যাস তৈরি করতে ব্যবহৃত হবে, যাতে আপনি "foo / MyTest.java" নামে একটি একক পরীক্ষা চালানোর জন্য "-ডেস্ট = মাই টেস্ট" টাইপ করতে পারেন। এই প্যারামিটারটি প্যারামিটারগুলি অন্তর্ভুক্ত / বাদ দেয় এবং টেস্টএনজি স্যুটএক্সএমএল ফাইলস পরামিতিগুলিকে ওভাররাইড করে। ২.7.৩ থেকে আপনি # মাইমাথোড বা # আমার * ইথড যুক্ত করে পরীক্ষায় সীমিত সংখ্যক পদ্ধতি প্রয়োগ করতে পারেন। সি টাইপ "-ডেস্ট = মাই টেস্ট # মাইমেথোদ" জুনিট 4.x এবং টেস্টএনজির জন্য সমর্থিত
JUnit এর নতুন সংস্করণগুলিতে বিভাগগুলির রানার রয়েছে: http://kentbeck.github.com/junit/doc/Re कृपयाNotes4.8.html
কিন্তু JUnit এর প্রকাশের পদ্ধতিটি মভেন ভিত্তিক নয়, তাই খাঁটি ব্যবহারকারীদের এটিকে নিজের সংগ্রহস্থলে ম্যানুয়ালি রাখতে হবে।
নিশ্চিতফায়ার প্লাগইন সংস্করণ ২.২২.১ (সম্ভবত পূর্ববর্তী) হিসাবে আপনি টেস্টএন.এসএমএল ব্যবহার করার সময় টেস্টনামের সম্পত্তি ব্যবহার করে একক পরীক্ষা চালাতে পারবেন
নিম্নলিখিত টেংটি.এক্সএমএল দেওয়া হয়েছে
<?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
বাক্য গঠনটি ব্যবহার করতে পারেন ।