ম্যাভেন প্যাকেজ / পরীক্ষা ছাড়াই ইনস্টল করুন (পরীক্ষাগুলি এড়িয়ে যান)


343

আমি আমার প্রকল্পটি প্যাকেজ করার চেষ্টা করছি। তবে, এটি স্বয়ংক্রিয়ভাবে প্যাকেজিং সম্পাদন করে পূর্ববর্তী পরীক্ষাগুলি চালায়। পরীক্ষাগুলি ডাটাবেসে কিছু সামগ্রী সন্নিবেশ করায়। এটি আমি চাই না, অ্যাপ্লিকেশনটি প্যাকেজ করার সময় আমার পরীক্ষা চালানো এড়াতে হবে। আউট টেস্ট দিয়ে কীভাবে প্যাকেজটি চালাবেন কেউ জানেন?


13
একটি ইউনিট-টেস্টে নিম্নলিখিত 4 টি পর্যায় থাকতে হবে: সূচনা, পরীক্ষা, যাচাইকরণ এবং টিয়ারডাউন। হতে পারে আপনার পরীক্ষাগুলি সামঞ্জস্য করা উচিত এবং আপনার ডাটাবেসের একটি যথাযথ টিয়ারডাউন / ক্লিনআপ যুক্ত করা উচিত অথবা আপনার পরীক্ষা চালানোর জন্য আপনার জার ফাইলের সাথে প্যাকেজযুক্ত নয় এমন একটি পৃথক ডাটাবেস উদাহরণ ব্যবহার করা উচিত।
মার্ক-খ্রিস্টান শুলজে

দেখে মনে হচ্ছে আপনার পরীক্ষাগুলি "ভারী" তাই আপনি এগুলি কার্যকর করতে চান না। তবে এটি একটি খারাপ অভ্যাস হয়তো ডিবিউনিট হিসাবে কিছু ফ্রেমওয়ার্ক আপনাকে সাহায্য করতে পারে? অথবা আপনি পরীক্ষা শেষে ডাটাবেস পরিবর্তনগুলি ফিরিয়ে দিতে পারবেন?
মিকেল মারাশে

উত্তর:


575

সাথে মেভেন চালান

mvn package -Dmaven.test.skip=true 

1
আপনার তাত্ক্ষণিক জবাবের জন্য ধন্যবাদ, গ্রহন থেকে ছুটে যাচ্ছি, যেখানে আমি -Dmaven.test.skip = কমান্ড যুক্ত করি?
vks

10
আমি কখনও গ্রহন থেকে এমভিএন চালু করিনি, তবে রান কনফিগারেশন উইন্ডোতে যেখানে আপনি মাভেনের লক্ষ্য এবং প্রোফাইলগুলি কনফিগার করেছেন সেখানে একটি 'স্কিপ টেস্ট' চেকবাক্স রয়েছে। সম্ভবত যে কৌশলটি করবে।
জর্জিগস ডিমসটাস

9
ডকুমেন্টেশন অনুসারে যা সম্পাদন পাশাপাশি সংকলন এড়িয়ে যাবে। আপনি কেবল এক্সিকিউশন এড়িয়ে চলার জন্য -স্কিপটিস্টেস ব্যবহার করতে পারেন। এই পোস্টটি আপনি প্রতিটি পতাকা কী কী সংস্করণ দিয়ে ব্যবহার করতে পারবেন সে সম্পর্কে কিছু সতর্কতাও দেয়
জনিআআআআআআ

1
অনেক ধন্যবাদ, আমি এটি ব্যবহার করে করতাম -DskipTestsতবে এটি আর কাজ করে না, কোনও ধারণা কেন?
স্যাম

7
নোট করুন যে ম্যাভেন শ্যুয়ারফায়ার প্লাগইন এবং মাভেন ফেইলসেফ প্লাগইন ডকুমেন্টেশন প্রস্তাব দেয় যে সেটিংটি সেটিংকে skipTestsপছন্দ করা হয় maven.test.skip
ফিলিপ বার্তেক

172

কেবলমাত্র নীচে উল্লিখিত কমান্ডটি সরবরাহ করুন যা পরীক্ষার কেসগুলি কার্যকর করতে অগ্রাহ্য করবে,

mvn package -DskipTests

4
আমার জন্য এই কাজ করবে না। পরিবর্তে আমাকে গ্রহণযোগ্য সমাধানটি ব্যবহার করতে হয়েছিল
সেবাস

1
-DskipTestsআমি যখন ব্যবহার করি তখন আমার পক্ষে কাজ করেনিmvn clean install -DskipTests
বিশ্রান্ত

1
এটি আংশিকভাবে ঠিক আছে কারণ এটি পরীক্ষা চালায় না তবে এটি পরীক্ষার ক্লাস শুরু করবে .....
আন্তোনিওসেস

অনুসারীদের জন্য -DskipTestsসমান -Dmaven.test.skip.exec=true stackoverflow.com/a/21933970/32453 এবং হ্যাঁ এটা পরীক্ষা কম্পাইল না এবং তাদের চালাতে না (যেহেতু -Dmaven.test.skip=trueতাদের কম্পাইল না)
rogerdpack

47

আপনি যদি কমান্ড লাইন আরগ সেট করতে না চান তবে আপনি আপনার পমটিতে এই প্লাগইন কনফিগারেশনটি যুক্ত করতে পারেন:

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

3
আপনি এই কনফিগারেশনের সাহায্যে কমান্ড লাইন থেকে আর পরীক্ষা চালাতে পারবেন না।
এমানুয়েল বুর্গ

1
@ এমমানুয়েলবার্গ যা এই উদাহরণে নির্দেশাবলী অনুসরণ করে প্রতিকার করতে পারেন maven.apache.org/plugins/maven-surefire-plugin/example/…
এসএমপি 7

1
সংশোধন করা লিঙ্ক maven.apache.org/surefire/maven-surefire-plugin/exferences/…
উলাব

41

মনে রাখবেন যে -ডমেন.টেষ্ট.স্কিপ ম্যাভেনকে পরীক্ষা-জার আর্টিক্ট তৈরি করতে বাধা দেয়।

আপনি যদি পরীক্ষাগুলি বাদ দিতে চান তবে সাধারণ বিল্ড ব্যবহার অনুযায়ী শিল্পকর্মগুলি তৈরি করতে চান:

-Dmaven.test.skip.exec

1
এটি আমি যে সন্ধানী ছিলাম এটি ঠিক কাজ করে han ধন্যবাদ।
বিনিতা ভারতী

আমার কী মনে আছে? "স্কিপ টেস্টস" এর মতো একটি সাধারণ স্পষ্ট এবং স্মরণীয় উপন্যাস কেন তৈরি করবেন না?
TheRealChx101

32

আপনি যদি উইন্ডোজ পাওয়ারশেলে এটি চেষ্টা করে দেখেন তবে আপনি এই ত্রুটিটি পাবেন:

[ERROR] Unknown lifecycle phase ".test.skip=true". You must specify a valid lifecycle phase or a goal in the format...

এর কারণ, পাওয়ারশেলের মধ্যে "- " এর বিশেষ অর্থ রয়েছে এবং এটি ম্যাভেনের সাথে সমস্যা সৃষ্টি করছে।

সমাধানটি হ'ল এটি একটি ব্যাকটিক (`) দিয়ে प्रीেন্ডেন্ড করা, ..

mvn `-Dmaven.test.skip=true install 

তথ্যসূত্র: http://kuniganotas.wordpress.com/2011/08/12/in अवैध-task-test-skiptrue-you-must-specify-a-uthor-lifecycle-phase/


1
আমার একই সমস্যা ছিল এবং এটি আমার জন্য এটি সমাধান করেছে। ধন্যবাদ.
nsof


18

maven.test.skipপ্যাকেজ ফেজ (এবং পূর্বনির্ধারিত লাইফসাইকেলের পূর্ববর্তীগুলি) চালানো হলে চলমান পরীক্ষাগুলি এড়াতে আপনি JVM যুক্তি হিসাবে পতাকাটি পাস করতে পারেন :

mvn package -Dmaven.test.skip=true

আপনি skipTestsএকা এমভিএন এক্সিকিউটেবলের কাছে পতাকাটিও পাস করতে পারেন । আপনি আপনার খুলুন POM এই তথ্য অন্তর্ভুক্ত করতে চান, তাহলে আপনি একটি নতুন প্রোফাইল যেখানে আপনি কনফিগার করতে পারেন তৈরি করতে পারেন maven-surefire-pluginথেকে পরীক্ষার লাফালাফি



13

ইনলিজ আইডিইএতে পরীক্ষার লক্ষ্যটি এড়িয়ে যাওয়ার জন্য একটি বিকল্প রয়েছে।

এখানে চিত্র বর্ণনা লিখুন


11

একটি পুরানো এবং গৃহীত প্রশ্নের উত্তর এখানে ering আপনি যদি সর্বদা কমান্ড লাইন আর্গুমেন্টটি এড়াতে চান তবে আপনি এটি আপনার pom.xML এ যুক্ত করতে পারেন:

  <properties>
    <skipTests>true</skipTests>
  </properties>

10

পরীক্ষাগুলি বাদ দেওয়ার জন্য আপনি যে কোনও আদেশ -DskipTestsবা -Dmaven.test.skip=trueযেকোন mvnআদেশে যুক্ত করতে পারেন । আপনার ক্ষেত্রে এটি নীচের মত হবে:

mvn package -DskipTests

অথবা

mvn package -Dmaven.test.skip=true

4

টেস্টগুলি সর্বদা [1] প্যাকেজের আগে চালানো উচিত। আপনার যদি পরীক্ষাগুলি বন্ধ করার দরকার হয় তবে আপনি কিছু ভুল করছেন। অন্য কথায়, আপনি ভুল সমস্যা সমাধানের চেষ্টা করছেন। আপনার সমস্যাটি আসলে কী তা নির্ণয় করুন এবং সেই প্রশ্নটি জিজ্ঞাসা করুন। দেখে মনে হচ্ছে এটি ডাটাবেস-সম্পর্কিত।

[1] আপনি যখন স্থানীয়, বিকাশ ব্যবহারের জন্য কোনও শৈল্পিক তৈরি করার দরকার হয় তখন আপনি পরীক্ষাগুলি এড়িয়ে যেতে পারেন, তবে সাধারণভাবে, একটি শৈল্পিক তৈরি করা সর্বদা একটি সফল পরীক্ষার রান অনুসরণ করা উচিত।


আমার একই রকম সমস্যা রয়েছে: আমার অ্যাপ্লিকেশনগুলিতে ওয়েবসকেট রয়েছে। আমি যখন এমভিএন ক্লিন ইনস্টল করি তখন আমি অন্তহীন পরীক্ষার সিরিজে শেষ করি। আমি এটি বন্ধ করার আগে প্রক্রিয়াটি 3 ঘন্টা চলছে এবং মুদ্রিত বার্তাটি কেবল ওয়েবকেট সম্পর্কে ছিল। আমি কী ভুল করছি তা দেখতে দয়া করে আমার সমস্যাটি পরীক্ষা করে দেখতে পারেন? stackoverflow.com/questions/54614739/...
georgeB

নিয়মে সর্বদা ব্যতিক্রম থাকে। যদি আপনি এটি না ভাবেন তবে আপনি ভুল।
জে সুলিভান


3

মাভেন বিল্ড এবং স্কিপ পরীক্ষা ছেড়ে দেওয়ার জন্য একটি শর্টহ্যান্ড স্বরলিপিটি হ'ল:

এমভিএন ক্লিন ইনস্টল -ডস্কিপ টেস্ট


2

মাভেন টেস্টকে সংক্রামিত না করে ম্যাভেন প্যাকেজের জন্য:

<properties>
    <maven.test.failure.ignore>true</maven.test.failure.ignore>
</properties>

ধন্যবাদ, আমার আজকের ঠিক এটাই দরকার ছিল।
শান ম্যাকমিলান

1

আপনি অবশ্যই এটা ভুল উপায়ে করছেন। টেস্টিং প্রাক-প্যাকেজিংয়ের একটি গুরুত্বপূর্ণ অঙ্গ। আপনার এড়ানো বা এড়িয়ে যাওয়া উচিত নয়, বরং এটি সঠিক উপায়ে করুন। এটি যে ডাটাবেসে ডেটা সন্নিবেশ করে তা পরিবর্তন করার চেষ্টা করুন (যেমন টেস্ট_ডিবি)। এটি সেট আপ করতে কিছুটা সময় লাগতে পারে। এবং এই ডাটাবেসটি চিরকালের জন্য ব্যবহার করা যেতে পারে তা নিশ্চিত করার জন্য, আপনাকে পরীক্ষার শেষে সমস্ত ডেটা মুছে ফেলা উচিত। JUnit4 এর এনেটেশন রয়েছে যা আপনার পক্ষে সহজ করে তোলে। সঠিক পদ্ধতির জন্য @ পূর্ব, @ পরে @ টস্ট টীকা ব্যবহার করুন। আপনার এটিতে কিছুটা সময় ব্যয় করা দরকার, তবে এটির পক্ষে এটি কার্যকর হবে!


9
আমি মনে করি প্রশ্নটি পাশাপাশি পরীক্ষা চালানো ছাড়াই প্যাকেজ করার ইচ্ছাটি পুরোপুরি বৈধ। আমি মনে করি না যে ওপি "স্পষ্টতই এটি ভুল উপায়ে করছে"। বিভিন্ন ব্যক্তি এবং প্রকল্পগুলির বিভিন্ন প্রয়োজন হয়, এবং এগুলি সাধারণত মাভেন বাইবেলের সাথে বা সফ্টওয়্যার বিকাশ কীভাবে কাজ করা উচিত সে সম্পর্কে বিভিন্ন ব্যক্তির (নিজের মত) বিশ্বাসের সাথে একত্রিত হয় না। আমি মনে করি আপনার উত্তরটি এর ঘনঘন পদ্ধতির ছাড়াই আরও প্রশংসা হবে।
জিরো 3

1

ইন্টেলিজে, দেখুন -> সরঞ্জাম উইন্ডোজ -> ম্যাভেন প্রকল্প নির্বাচন করুন। লাইফ্যাসাইল ড্রপডাউন-এ, প্যাকেজটিতে ডান ক্লিক করুন -> 'আপনার প্রকল্প [প্যাকেজ] তৈরি করুন' নির্বাচন করুন ...

এই মানটি লিখুন: package -Dmaven.test.skip=true -f pom.xmlকমান্ড লাইন ক্ষেত্রে। প্রয়োগ করুন এবং একটি রান কনফিগারেশন ড্রপডাউন মেনুতে আপনার তৈরি কাস্টম মাভেন কমান্ডের সাথে উপস্থিত হওয়া উচিত।


কেন এই হ্রাস ছিল? আমি প্রতিবারই আমার প্রকল্পটি বানাতে চাইছি তবে পরীক্ষাগুলি বাদ দিতে চাইছি
প্যাট্রিক



-1

এটি করার সর্বোত্তম এবং সহজতম উপায়, উইন্ডোতে "মাভেন প্রজেক্ট" এর ইন্টেলিজ আইডিয়াতে এবং কেবল টেস্ট বোতামটিতে ক্লিক করবেন না। আমি আশা করি, আমি আপনাকে সাহায্য করেছি। আপনার দিনটি শুভ হোক :)


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