ম্যাভেন পরীক্ষা ছেড়ে যান


225

আমি ম্যাভেন ২.২.১ ব্যবহার করছি এবং আমার প্রকল্পটি তৈরি করতে আমি এই কমান্ডটি ব্যবহার করেছি

mvn clean install -Dmaven.test.skip=true

তবে বিল্ডটি ব্যর্থ হয়ে বলেছে যে এটি কোনও একটি নিদর্শন খুঁজে পাচ্ছে না। তবে, যখন আমি ব্যবহার করেছি:

mvn clean install -DskipTests

সবকিছু ঠিকঠাক কাজ করেছে।

এখন পর্যন্ত আমি ভাবছিলাম যে এই 2 টি কমান্ড সমান। যাইহোক, এই লিঙ্কটি মনে হয় যে -Dmaven.test.skip=trueএটি পরীক্ষার কেসগুলি সংকলন এড়িয়ে যায় ।

যাইহোক, এটি এখনও আমাকে ব্যাখ্যা করল না কেন একটি কমান্ড কাজ করছে এবং অন্যটি কাজ করছে না। কেউ দয়া করে আমার কাছে এটি ব্যাখ্যা দিলে কৃতজ্ঞ হবেন।


1
আপনি ম্যাভেন-শিফারফায়ার-প্লাগইনের কোন সংস্করণ ব্যবহার করছেন? আপনি যে ডক সংস্করণটি পড়ছেন তা কি একই?
জেরিটিটান

2
একটি স্কিপ বিল্ডিং, অন্যটি এড়িয়ে চলে। চাইলে দুজনেই দুজনেই ব্যবহার করুন।
ইলিয়ট ফ্রিচ

1
আপনি কি ব্যর্থতার বিবরণটি প্রদান করতে পারেন - ত্রুটি বার্তা বা স্ট্যাকট্রেস?
রঘুরাম

1
আপনি কেন এত পুরানো মাভেন সংস্করণ ব্যবহার করছেন যা ইতিমধ্যে ইওএল সংজ্ঞায়িত হয়েছে
খামারবায়েস

1
সুতরাং এটি কি সত্যিই সত্য যে সমস্ত পরীক্ষার সাথে সম্পর্কিত আমার ব্যবহার করতে হবে তা সম্পূর্ণভাবে এড়িয়ে যেতে -Dmaven.test.skip=true -DskipTests? পরিস্থিতিগুলির উপর নির্ভর করে কখনও কখনও এক বা অন্যটিকে বাদ দেওয়া যেতে পারে তবে কে সে সম্পর্কে ভাবতে চায় ..
ল্যান্ডন কুহন

উত্তর:


120

আপনি যেমন উল্লেখ করেছেন, -Dmaven.test.skip=trueপরীক্ষাগুলি সংকলন এড়িয়ে যায়। আরও উল্লেখযোগ্য বিষয় হল, এটি পরীক্ষার নিদর্শনগুলি তৈরি করা এড়িয়ে যায়। বড় প্রকল্পগুলির জন্য একটি সাধারণ অনুশীলন হ'ল একই প্রকল্পের মডিউলগুলির মধ্যে টেস্টিং ইউটিলিটি এবং বেস ক্লাসগুলি ভাগ করে নেওয়া।

এটি test-jarপূর্বে নির্মিত মডিউলের একটি মডিউলের প্রয়োজন পরে সম্পন্ন হয় :

<dependency>
  <groupId>org.myproject.mygroup</groupId>
  <artifactId>common</artifactId>
  <version>1.0</version>
  <type>test-jar</type>
  <scope>test</scope>
</dependency>

যদি -Dmaven.test.skip=true(বা সহজভাবে -Dmaven.test.skip) নির্দিষ্ট করা থাকে তবে test-jarগুলিগুলি নির্মিত না হয় এবং যে কোনও মডিউল যা তাদের উপর নির্ভর করে তা এর বিল্ডটি ব্যর্থ করে দেয়।

বিপরীতে, যখন আপনি ব্যবহার করেন -DskipTests, মাভেন পরীক্ষাগুলি চালায় না, তবে এটি তাদের সংকলন করে এবং পরীক্ষার জারটি তৈরি করে, এটি পরবর্তী মডিউলগুলির জন্য উপলব্ধ করে তোলে।


2
এই সমস্যার সমাধান কিভাবে? আমার অনলাইন ম্যাভেন কমান্ড হিসাবে -Dmaven.test.skip ব্যবহার করুন।
নেপটুন

2
@ নেপটিউন কি সমস্যা? আপনার যদি নতুন প্রশ্ন থাকে তবে দয়া করে এটি জিজ্ঞাসা করার জন্য একটি নতুন পোস্ট ব্যবহার করুন।
মুরিনিক

58

প্যাকেজটি তৈরির জন্য টেস্টগুলির সাথে আমার কিছু আন্ত-নির্ভরতা ছিল।

নিম্নলিখিত কমান্ডটি লক্ষ্য পূরণের জন্য পরীক্ষামূলকভাবে নিদর্শনটির প্রয়োজনের ওভাররাইড পরিচালনা করে:

mvn -DskipTests=true  package

29

প্রতিটি পরামিতি মধ্যে পার্থক্য আছে।

  • -ডস্কিপ টেস্টগুলি চলমান পরীক্ষার পর্বে এড়িয়ে যায়, এর অর্থ এই প্রক্রিয়াটির শেষে আপনার পরীক্ষাগুলি সংকলিত হবে।

  • -Dmaven.test.skip = সত্য স্কিপ সংকলন এবং চলমান পরীক্ষার ধাপ।

প্যারামিটার হিসাবে -Dmaven.test.skip = সংকলন সত্য স্কিপ আপনার পরীক্ষা নিদর্শন না।

আরও তথ্যের জন্য কেবল সার্ফায়ার ডকুমেন্টেশন পড়ুন: http://maven.apache.org/plugins-archives/maven-surefire-plugin-2.12.4/example/skipping-test.html


15

আমি আপনাকে একটি উদাহরণ দিতে পারি যা একই সমস্যার সাথে পরিণতি দেয় তবে এটি আপনাকে আপনার প্রশ্নের উত্তর দেয় না। (অতিরিক্ত হিসাবে, এই উদাহরণে, আমি আমার ম্যাভেন 3 জ্ঞান ব্যবহার করছি, যা ম্যাভেন 2 এর জন্য প্রযোজ্য নয়))

একটি মাল্টি-মডিউল মাভেন প্রকল্পে (মডিউলগুলি রয়েছে Aএবং Bযেখানে Bনির্ভর করে A), আপনি এ থেকে কোনও পরীক্ষার নির্ভরতাও যুক্ত করতে পারেন ।AB

এই নির্ভরতা নিম্নলিখিত হিসাবে দেখতে পারে:

<dependency>
     <groupId>com.foo</groupId>
     <artifactId>A</artifactId>
     <type>test-jar</type> <!-- I'm not sure if there is such a thing in Maven 2, but there is definitely a way to achieve such dependency in Maven 2. -->
     <scope>test</scope>
</dependency>

(আরও তথ্যের জন্য https://maven.apache.org/guides/mini/guide-attached-tests.html দেখুন )
নোট করুন যে প্রকল্পটি পরীক্ষার শ্রেণি এবং পরীক্ষার সংস্থানগুলি অবস্থিত এমন Aএকটি শ্রেণিবদ্ধের সাথে গৌণ শিল্পকলা তৈরি করে tests

যদি আপনি এটি দিয়ে আপনার প্রকল্পটি তৈরি করেন -Dmaven.test.skip=true, আপনি যতক্ষণ না পরীক্ষামূলকভাবে আপনার স্থানীয় রেপো বা বাহ্যিক সংগ্রহস্থলগুলিতে খুঁজে পাওয়া যায়নি ততক্ষণ নির্ভরতা সমাধানের ত্রুটি পাবেন । কারণ হ'ল পরীক্ষাগুলির ক্লাসগুলি না হয় সংকলিত হয়েছিল না বা testsশৈল্পিক উত্পাদনও করা হয়নি।
তবে, আপনি যদি আপনার বিল্ডটি চালান তবে -DskipTestsআপনার testsআর্টিক্টাক্টটি তৈরি করা হবে (যদিও পরীক্ষাগুলি চলবে না) এবং নির্ভরতা সমাধান করা হবে।


10

মাভেন ক্লিন করার সময় পরীক্ষার কেসটি এড়াতে আমি নিম্নলিখিত কমান্ডটিতে -স্কিপটিস্টেস পরামিতি ব্যবহার করেছি

mvn clean install -DskipTests

টার্মিনাল উইন্ডোতে


9

প্যারামিটার-ডিস্কিপ টেস্টগুলি আপনার নিশ্চিত ফায়ার-প্লাগইন সংস্করণের উপর নির্ভর করে কাজ করতে পারে না।

আপনি "-ডমাইভন.টেস্ট.স্কিপ.এক্সেক" ব্যবহার করতে পারেন "-ডস্কিপটিস্টস" এর পরিবর্তে

সূত্র: শিওরফায়ার প্যারামিটারের বিশদ


1

মেভেন সংকলনের সময় আপনি pom.xML এ নিম্নলিখিত প্লাগইন যুক্ত করে পরীক্ষা সম্পাদন এড়িয়ে যেতে পারেন

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.20.1</version>
    <configuration>
         <skipTests>true</skipTests>
    </configuration>
</plugin>

1
এটি করার পরেও পরীক্ষাগুলি এড়িয়ে যায়mvn test
প্রতীক সিংহল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.