পরীক্ষা ছাড়াই গ্রেডল বিল্ড


635

আমি gradle buildইউনিট পরীক্ষাগুলি সম্পাদন না করেই মৃত্যুদণ্ড কার্যকর করতে চাই । আমি চেষ্টা করেছিলাম:

$ gradle -Dskip.tests build

এতে কিছু করার মনে হয় না। আমি ব্যবহার করতে পারে অন্য কোন কমান্ড আছে?



আপনি জাভা ব্যবহার করছেন ??
নাগা

2
-DskipTestsমাভেনের জন্য
গায়ান ওয়েরাকুট্টি

উত্তর:


1239

আপনার -xকমান্ড লাইন যুক্তি ব্যবহার করা উচিত যা কোনও কাজ বাদ দেয় exc

চেষ্টা করুন:

gradle build -x test 

হালনাগাদ:

পিটারের মন্তব্যের লিঙ্কটি পরিবর্তন হয়েছে। গ্রেডল ব্যবহারকারীর গাইড থেকে এখানে চিত্রটি দেওয়া হয়েছে


45
এটা সঠিক উত্তর. 'গ্রেডেল এসেম্বল' অন্যান্য অনেক কাজও ছেড়ে দেবে। ধারণা পেতে এই চিত্রটি দেখুন । সাধারন বাস্তব জীবনের বিল্ডগুলির জন্য, 'গ্রেডেল এসেম্বল' আরও বেশি কাজ ছেড়ে যাবে।
পিটার নিদারউইজার

13
@ পিটারনিডারওয়াইজারের লিঙ্কটি আর বৈধ নয়। সম্ভবত তিনি এই চিত্রটি উল্লেখ করছেন: গ্রেড.আর.এল
ডেভ এল।

9
যদিও আপনাকে উদযাপন -x integTestএবং ইত্যাদি যোগ করার প্রয়োজন হতে পারে কাজ করে, তাই মাভেনের কম্বলের মতো সুবিধাজনক নয় -DskipTests
জেসি গ্লিক

1
@ সি_মেকার, এটি কীভাবে গ্রহণ করবেন গ্রহন থেকে?
রিনুথোমাজ

ক্লাস ফাইল চালানো কি সম্ভব? মানে runআমি আমার হ্যালো প্রোগ্রামটির প্রভাবটি দেখতে পাচ্ছি effect তবে আমি মনে করি এটি আবার সবকিছু সংকলন করছে। আমি কেবল জাভা প্রোগ্রামটি চালাতে চাই।
সিগুর

107

চেষ্টা করুন:

gradle assemble

আপনার প্রকল্পের জন্য উপলব্ধ সমস্ত কাজ তালিকা করতে চেষ্টা করুন:

gradle tasks

হালনাগাদ:

এটি প্রথমে সর্বাধিক সঠিক উত্তর বলে মনে হচ্ছে না, তবে gradle tasksআউটপুট বা ডক্স সাবধানতার সাথে পড়ুন ।

Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.

8
আপনার ইউনিট পরীক্ষাগুলি ডিবাগ করার ক্ষেত্রে অতিরিক্ত ইঙ্গিত হিসাবে: gradle assembleমূল ফাইলগুলি সংকলন করবে না। আপনি যদি নিজের ইউনিট পরীক্ষা স্থির করতে কাজ করেন তবে আপনার প্রয়োজন gradle assemble testClasses- আমার মনে হয় বিল্ড টাস্কের নামকরণটি বেশ বিভ্রান্তিকর।
মার্টিন

36

গৃহীত উত্তরটি সঠিক।

OTOH, আমি এর আগে যেভাবে সমাধান করেছি তা হ'ল সমস্ত প্রকল্পে নিম্নলিখিতগুলি যুক্ত করা:

test.onlyIf { ! Boolean.getBoolean('skip.tests') }

এর সাথে বিল্ডটি চালান -Dskip.tests=trueএবং সমস্ত পরীক্ষার কাজগুলি এড়িয়ে যায়।


3
আমার জন্য এটি এখনও একমাত্র কার্যকরী বিকল্প কারণ -x পরীক্ষাটি কেবলমাত্র প্রারম্ভিক প্রকল্পে কাজ করবে বলে মনে হয় তবে একাধিক প্রকল্পের বিল্ডের নির্ভরতা নয় (গ্রেড ২.১ এ পরীক্ষিত)। আপনার রুট বিল্ড.gradle এ একটি কনফিগার করুন (subprojects.findAll {javaProjects.contains (it.name)})}} test.onlyif ... এ রাখুন এবং এটি সমস্ত প্রকল্পের জন্য কাজ করবে।
টিম

ভাল একটা. এই পদ্ধতিটি খাঁটি ব্যবহারকারীদের কাছে পরিচিত।
অ্যালেক্সআর



4

উল্লেখ

গ্রেড ব্যবহার -xকমান্ড-লাইন বিকল্প থেকে কোনও কাজ বাদ দিতে । নীচের উদাহরণ দেখুন

task compile << {
    println 'task compile'
}

task compileTest(dependsOn: compile) << {
    println 'compile test'
}

task runningTest(dependsOn: compileTest) << {
    println 'running test'
}
task dist(dependsOn:[runningTest, compileTest, compile]) << {
    println 'running distribution job'
}

এর আউটপুট: gradle -q dist -x runningTest

task compile
compile test
running distribution job

আশা করি এটি আপনাকে প্রাথমিক প্রদান করবে


পৃষ্ঠার একটি স্ক্রিন শট প্রেরণ করুন। আমি জানি না এই কোডের লাইনটি কোথায় রাখবেন ....
হোসেইন মনসৌরি

এই কোডের টুকরোটি আপনার বিল্ড.gradle এ যাওয়া উচিত :)
সুগন্ধন মাধবন পিল্লাই

2

প্রকল্পে পরীক্ষার কাজগুলি অক্ষম করার বিভিন্ন উপায় হ'ল:

tasks.withType(Test) {enabled = false}

আপনি যদি কোনও প্রকল্পের (বা প্রকল্পগুলির গ্রুপ) পরীক্ষার অক্ষম করতে চান তবে কখনও কখনও এই আচরণের প্রয়োজন হয়।

এইভাবে কেবল একটি জাভা 'পরীক্ষা' নয়, সমস্ত ধরণের পরীক্ষামূলক কাজের জন্য কাজ করা। এছাড়াও, এই উপায়টি নিরাপদ। এখানে আমি যা বলতে চাইছি তা এখানে: আপনার বিভিন্ন ভাষায় প্রকল্পের একটি সেট রয়েছে: যদি আমরা এই ধরণের রেকর্ডটি মূলত যুক্ত করার চেষ্টা করি build.gradle:

 subprojects{
 .......
 tests.enabled=false
 .......
}

আমরা কোনও প্রকল্পে ব্যর্থ হব যখন আমাদের কাছে টেস্ট নামক কোনও কাজ না থাকে


2

-x testস্কিপ টেস্ট এক্সিকিউশন ব্যবহার করে তবে এটি পরীক্ষার কোড সংকলনও বাদ দেয়।

gradle build -x test 

আমাদের ক্ষেত্রে, আমাদের একটি সিআই / সিডি প্রক্রিয়া রয়েছে যেখানে একটি লক্ষ্য সংকলন এবং পরবর্তী লক্ষ্যটি পরীক্ষা করা হয় (বিল্ড -> পরীক্ষা)।

সুতরাং, আমাদের প্রথম Buildলক্ষের জন্য আমরা নিশ্চিত করতে চেয়েছিলাম যে পুরো প্রকল্পটি সুসংগতভাবে সংকলিত হয়েছে। এর জন্য আমরা ব্যবহার করেছি:

./gradlew build testClasses -x test

পরবর্তী লক্ষ্যটিতে আমরা কেবল পরীক্ষাগুলি সম্পাদন করি।


0
gradle build -x test --parallel

যদি আপনার মেশিনে একাধিক কোর থাকে। তবে এটি সমান্তরাল পরিষ্কার ব্যবহার করার পরামর্শ দেওয়া হয় না।


0

দয়া করে এটি চেষ্টা করুন:

gradlew -DskipTests=true build


6
@ কিরণকুমারদাফদা - না। আপনি যখনই চান একটি উত্তর পোস্ট করতে পারেন, এমনকি যদি কোনও বিদ্যমান উত্তর গ্রহণ করা হয়ে থাকে। নতুন উত্তর গৃহীত উত্তরের চেয়ে ভাল হতে পারে, বা এটি অন্যভাবে সমাধান করুন, বা অন্যথায় অন্যকে সহায়তা করুন। পর্যালোচনা থেকে
ওয়াই হা লি

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

0

ইন জাভা প্লাগইন :

$ gradle tasks

Build tasks
-----------
assemble - Assembles the outputs of this project.
build - Assembles and tests this project.
testClasses - Assembles test classes.

Verification tasks
------------------
test - Runs the unit tests.

গ্রেডল বিল্ডিং বিনা পরীক্ষায় আপনার দুটি বিকল্প রয়েছে:

$ gradle assemble
$ gradle build -x test

তবে আপনি যদি সংকলন পরীক্ষা করতে চান:

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