গ্রেডল: রিয়েল টাইমে কনসোলে পরীক্ষার ফলাফলগুলি কীভাবে প্রদর্শিত হবে?


231

আমি চালিত একই কনসোলটিতে চালিত হওয়ার সাথে সাথে পরীক্ষার ফলাফলগুলি (system.out / err, পরীক্ষিত উপাদানগুলির লগ বার্তাগুলি) দেখতে চাই:

gradle test

এবং পরীক্ষার রিপোর্টগুলি দেখার জন্য পরীক্ষা না হওয়া পর্যন্ত অপেক্ষা করবেন না (যা কেবলমাত্র পরীক্ষাগুলি শেষ হওয়ার পরে উত্পন্ন হয়, তাই পরীক্ষা চলাকালীন আমি কিছুই "টেল-ফ" করতে পারি না)

উত্তর:


169

আপনি কমান্ড লাইনে INFO লগিং স্তর সহ গ্রেডল চালাতে পারেন। এটি চলাকালীন প্রতিটি পরীক্ষার ফলাফল আপনাকে দেখাবে। ডাউনসাইড হ'ল আপনি অন্যান্য কাজের জন্য আরও বেশি আউটপুট পাবেন।

gradle test -i

13
১.০ মাইলফলক the সহ গ্রেডল ডিএসএল এখন আপনার কনফিগার করে নিন যে সরাসরি পরীক্ষার লগিং.শো স্ট্যান্ডার্ড স্ট্রিমস ব্যবহার করে =test বন্ধের মধ্যেই সত্য
বেনিয়ামিন মুশকো

4
এটি গ্রেড 1.11-এ কাজ করে না। আমি প্রচুর ডিবাগ আউটপুট পাই তবে স্বতন্ত্র পরীক্ষার ফলাফল নয়।
ডেভিড মোলস

44
যে -iটার্মিন্যালে অপ্রাসঙ্গিক infos একটি গুচ্ছ নিক্ষেপ করা হবে।
থুই ত্রিনহ

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

1
আপনি grepহাজার হাজার অযাচিত লাইনগুলি ফিল্টার করতে ব্যবহার করতে পারেন । Stackoverflow.com/questions/3963708/…
মিস্টার-আইডিই

172

এখানে আমার অভিনব সংস্করণ:

অভিনব পরীক্ষার ফলাফল

import org.gradle.api.tasks.testing.logging.TestExceptionFormat
import org.gradle.api.tasks.testing.logging.TestLogEvent

tasks.withType(Test) {
    testLogging {
        // set options for log level LIFECYCLE
        events TestLogEvent.FAILED,
               TestLogEvent.PASSED,
               TestLogEvent.SKIPPED,
               TestLogEvent.STANDARD_OUT
        exceptionFormat TestExceptionFormat.FULL
        showExceptions true
        showCauses true
        showStackTraces true

        // set options for log level DEBUG and INFO
        debug {
            events TestLogEvent.STARTED,
                   TestLogEvent.FAILED,
                   TestLogEvent.PASSED,
                   TestLogEvent.SKIPPED,
                   TestLogEvent.STANDARD_ERROR,
                   TestLogEvent.STANDARD_OUT
            exceptionFormat TestExceptionFormat.FULL
        }
        info.events = debug.events
        info.exceptionFormat = debug.exceptionFormat

        afterSuite { desc, result ->
            if (!desc.parent) { // will match the outermost suite
                def output = "Results: ${result.resultType} (${result.testCount} tests, ${result.successfulTestCount} passed, ${result.failedTestCount} failed, ${result.skippedTestCount} skipped)"
                def startItem = '|  ', endItem = '  |'
                def repeatLength = startItem.length() + output.length() + endItem.length()
                println('\n' + ('-' * repeatLength) + '\n' + startItem + output + endItem + '\n' + ('-' * repeatLength))
            }
        }
    }
}

13
আমার মতে, এটি এখানে সেরা উত্তর is এটিতে বিকল্পগুলির বৃহত্তম সেট রয়েছে এবং প্রত্যেকে যেমন প্রয়োজন তাদের পরীক্ষাগুলি কনফিগার করতে পারে।
স্লাভ

2
@ সেলসকেজ আমাকে কোথায় এই কোডটি অনুলিপি করতে হবে এবং এটি কীভাবে কমান্ড লাইন থেকে চালাতে হবে? সম্পাদনা: এটি পেয়েছে - কেবল এটি মডিউলগুলির গ্রেডলকনফাইগ এ যুক্ত করুন এবং সাধারণভাবে চালান
হার্ডিসিম

নিস! আমি শুধু পাইপ মুছে |থেকে startItemকারণ অ্যান্ড্রয়েড স্টুডিও 2.2.3 মাধ্যমে কাজটি চলমান তাদের বার্তা ত্রুটি হিসাবে স্বীকৃতি এবং এর সাফল্য তৈরী করে এটা বিরক্তিকর ছিল।
পাগলামি

1
এবং আপনি কীভাবে রঙগুলি সক্ষম করেছেন?
দুর্গা স্বরূপ

1
@ দুর্গা স্বরূপ আমার জন্য বাক্সের বাইরে কাজ করে। আপনার টার্মিনাল অ্যাপ্লিকেশন রঙ সমর্থন করে তা নিশ্চিত করুন। আমি ব্যক্তিগতভাবে আইটার্ম 2 অ্যাপ ব্যবহার করি।
শুভম চৌধুরী চৌধুরী

156

আপনি আপনার বিল্ড.gradle ফাইলের ভিতরে একটি গ্রোভি ক্লোজার যুক্ত করতে পারেন যা আপনার জন্য লগিং করে:

test {
    afterTest { desc, result -> 
        logger.quiet "Executing test ${desc.name} [${desc.className}] with result: ${result.resultType}"
    }
}

আপনার কনসোলে এটি এর পরে এটি পড়বে:

:compileJava UP-TO-DATE
:compileGroovy
:processResources
:classes
:jar
:assemble
:compileTestJava
:compileTestGroovy
:processTestResources
:testClasses
:test
Executing test maturesShouldBeCharged11DollarsForDefaultMovie [movietickets.MovieTicketsTests] with result: SUCCESS
Executing test studentsShouldBeCharged8DollarsForDefaultMovie [movietickets.MovieTicketsTests] with result: SUCCESS
Executing test seniorsShouldBeCharged6DollarsForDefaultMovie [movietickets.MovieTicketsTests] with result: SUCCESS
Executing test childrenShouldBeCharged5DollarsAnd50CentForDefaultMovie [movietickets.MovieTicketsTests] with result: SUCCESS
:check
:build

সংস্করণ 1.1 যেহেতু Gradle অনেক সমর্থন পরীক্ষা আউটপুট লগ ইন করার আরও বিকল্প । এই বিকল্পগুলির সাথে আপনি নিম্নলিখিত কনফিগারেশন সহ একই ধরণের আউটপুট অর্জন করতে পারেন:

test {
    testLogging {
        events "passed", "skipped", "failed"
    }
}

4
এটি কেবল পরীক্ষার মৃত্যুর পরে আউটপুট উত্পাদন করে । আমি যা খুঁজছি তা হ'ল লগিং / রিপোর্টিং / সিস্টেম আউট / প্রিন্টলানস ইত্যাদি .. পরীক্ষা চলার সাথে সাথে । ম্যাভেনের সাথে বা কেবল ইনটেলিজজে / ইক্লিপসে পরীক্ষা চালানোর বিষয়ে চিন্তা করুন: আউটপুটটি রিয়েল টাইমে উত্পাদিত হয়।
টালিটিয়াস

ঠিক আছে, আপনার প্রশ্নের ভুল বোঝার জন্য দুঃখিত। সেক্ষেত্রে আপনার গ্র্যাডল
ব্লগিং

1
তাহলে আউটপুটটি দেখতে আমি আসলে কী পরিবর্তন করব? আমি ডকুমেন্টেশনে এই সমস্ত কাস্টম শ্রোতা এবং স্টাফ দেখতে পাচ্ছি, তবে কীভাবে এটি কনফিগার করতে হয় সে সম্পর্কে আমার কোনও ধারণা নেই।
jpswain

118

স্টিফ্যাংলেস উত্তর হিসাবে :

আপনার build.gradle( নিম্নলিখিত সংস্করণ 1.1) থেকে নিম্নলিখিত কোড যুক্ত করা উত্তীর্ণ , এড়িয়ে যাওয়া এবং ব্যর্থ পরীক্ষায় আউটপুট জন্য ভাল কাজ করে ।

test {
    testLogging {
        events "passed", "skipped", "failed", "standardOut", "standardError"
    }
}

আমি অতিরিক্ত যা বলতে চাই (আমি এটি শুরুর জন্য একটি সমস্যা তা জানতে পেরেছি) হ'ল gradle testকমান্ডটি পরিবর্তনের জন্য পরীক্ষাটি একবার কার্যকর করে ।

সুতরাং আপনি যদি দ্বিতীয়বার এটি চালাচ্ছেন তবে পরীক্ষার ফলাফলের কোনও ফলাফল হবে না । আপনি এটি বিল্ডিং আউটপুটটিতেও দেখতে পারেন: গ্রেডেল তারপরে পরীক্ষাগুলিতে UP-TO-DATE বলে । সুতরাং এটি কোনও এন-টাইম সময় কার্যকর হয়নি।

স্মার্ট গ্রেডল!

আপনি যদি পরীক্ষার কেসগুলি চালাতে বাধ্য করতে চান তবে ব্যবহার করুন gradle cleanTest test

এটি সামান্য বিষয় ছাড়াই তবে আমি আশা করি এটি কিছু নবজাতকদের সহায়তা করবে।

সম্পাদন করা

যেমন মন্তব্যগুলিতে স্পার্ক_স্প্রেড বলেছেন:

আপনাকে gradle বাধ্য করতে চান, সবসময় চলতে তাজা পরীক্ষা আপনি যোগ করতে পারেন (যা সবসময় একটি ভাল ধারণা হবে না পারে) outputs.upToDateWhen {false}থেকে testLogging { [...] }এখানে পড়া চালিয়ে যান ।

শান্তি বর্ষিত হোক।


11
আরে, কেবল আপনাকে জানাতে চেয়েছিলাম যে আমি gradle cleanTest testপ্রতিবার না বলার একটি উপায় খুঁজে পেয়েছি (গ্রেডল 1.12 হিসাবে)। যোগ outputs.upToDateWhen {false}করার জন্য testLogging {...}এবং যে কৌতুক করতে হবে। এটি গ্র্যাডলকে প্রতিবার পরীক্ষা চালাতে বাধ্য করবে। আমি এটি গ্রেডল ফোরামগুলিতে পেয়েছি , ডকটার নিজে পোস্ট করেছেন । আশাকরি এটা সাহায্য করবে.
স্পার_স্প্রেড

exceptionFormat "full"আপনি যখন AssertJ বা অনুরূপ lib ব্যবহার করছেন তখন কী ব্যর্থ হয়েছে, দরকারী তা সম্পর্কে বিশদ পেতে আমি অন্তর্ভুক্ত করব ।
শায়রন টলেডো

5
পরিবর্তে cleanTestআপনি ব্যবহার করতে পারেনtest --rerun-tasks
gavenkoa

2
@ ক্যাগেভেনকো আমার মনে হয় --rerun-tasksকেবলমাত্র পরীক্ষাগুলির জন্য কাজগুলি নয়, আপনার সমস্ত কাজ পুনরায় চালু করা হবে।
থমাসডাব্লু

2
আসলে, cleanTest testসর্বশেষতম অ্যান্ড্রয়েড স্টুডিও এবং গ্রেড 3.3 এ আমার পক্ষে কাজ করছে না, তবে --rerun-tasksকৌশলটি করেছে। কেন জানি না। তবে এই উত্তরটি পড়লে আমার মাথাব্যথা দূর হয়ে গেল, আমি প্রতিটি জিনিস যুক্ত করার পরে চ ** কিং টেস্ট লগইনটি কোথায়।
উইংজারো

111

দাবি অস্বীকার: আমি গ্রেডল টেস্ট লগার প্লাগিনের বিকাশকারী।

কনসোলে সুন্দর লগগুলি প্রিন্ট করতে আপনি কেবল গ্রেডল টেস্ট লগার প্লাগিন ব্যবহার করতে পারেন । অল্প বা কোনও কনফিগারেশন না দিয়ে বেশিরভাগ ব্যবহারকারীদের সন্তুষ্ট করতে প্লাগইনটি বুদ্ধিমান ডিফল্টগুলি ব্যবহার করে তবে প্রত্যেককে অনুসারে বেশ কয়েকটি থিম এবং কনফিগারেশন বিকল্প সরবরাহ করে offers

উদাহরণ

স্ট্যান্ডার্ড থিম স্ট্যান্ডার্ড থিম

মোচা থিম মোচা থিম

ব্যবহার

plugins {
    id 'com.adarshr.test-logger' version '<version>'
}

আপনি সর্বদা গ্রেডল সেন্ট্রাল থেকে সর্বশেষতম সংস্করণ পেয়েছেন তা নিশ্চিত করুন ।

কনফিগারেশন

আপনার কোনও কনফিগারেশন দরকার নেই। যাইহোক, প্লাগইন কয়েকটি বিকল্প দেয়। এটি নিম্নলিখিত হিসাবে করা যেতে পারে (ডিফল্ট মান দেখানো হয়েছে):

testlogger {
    // pick a theme - mocha, standard, plain, mocha-parallel, standard-parallel or plain-parallel
    theme 'standard'

    // set to false to disable detailed failure logs
    showExceptions true

    // set to false to hide stack traces
    showStackTraces true

    // set to true to remove any filtering applied to stack traces
    showFullStackTraces false

    // set to false to hide exception causes
    showCauses true

    // set threshold in milliseconds to highlight slow tests
    slowThreshold 2000

    // displays a breakdown of passes, failures and skips along with total duration
    showSummary true

    // set to true to see simple class names
    showSimpleNames false

    // set to false to hide passed tests
    showPassed true

    // set to false to hide skipped tests
    showSkipped true

    // set to false to hide failed tests
    showFailed true

    // enable to see standard out and error streams inline with the test results
    showStandardStreams false

    // set to false to hide passed standard out and error streams
    showPassedStandardStreams true

    // set to false to hide skipped standard out and error streams
    showSkippedStandardStreams true

    // set to false to hide failed standard out and error streams
    showFailedStandardStreams true
}

আমি আশা করি আপনি এটি ব্যবহার করে উপভোগ করবেন।


3
নিস! উত্তীর্ণ / ব্যর্থ / এড়িয়ে যাওয়া পরীক্ষার সংক্ষিপ্তসার হিসাবে সাধারণ হিসাবে আশ্চর্যজনক কিছু এটির দিকে পরিচালিত করে।
মার্কহু

আমি কেবল প্লাগইনকে একীভূত করেছি, তবে আমি প্যারেন্থিসিসের প্রতিটি পরীক্ষার জন্য আপনার গিটের মতো সময়কালের পরীক্ষাগুলি গ্রহণ করতে দেখছি না (1.6s) কীভাবে এটি সক্ষম করবেন?
dk7

@ dk7 কেবলমাত্র ডিফল্টরূপে চালিত হতে 1 সেকেন্ডের বেশি সময় লাগে এমন পরীক্ষাগুলির সময়কাল মুদ্রিত হবে। আরও তথ্যের জন্য ডকুমেন্টেশন দেখুন । আপনি যদি সমস্ত সময়সীমা দেখতে চান তবে কেবল সেট slowThresholdকরুন 0
আদর্শ

1
@ হ্যারেডল.ব্রাউন হ্যাঁ প্রকৃতপক্ষে :) আমি বর্তমানে কয়েকটি জিনিস নিয়ে কিছুটা দুলিয়েছি তবে এটি খুব বেশি জীবিত।
আদর্শ

1
হ্যাঁ @ ভাদিমটাইমিরভ। Github.com/radarsh/gradle-test-logger-plugin/issues/137 হিসাবে একবার আমি এটি নথিভুক্ত করি 🙂
আদর্শ

49

build.gradleস্টাডাউট এবং স্টডার গেলা থেকে গ্রেড বন্ধ করতে এটি যুক্ত করুন ।

test {
    testLogging.showStandardStreams = true
}

এটি এখানে নথিভুক্ত ।


38

'পরীক্ষা' টাস্ক অ্যান্ড্রয়েড প্লাগইনের জন্য কাজ করে না, অ্যান্ড্রয়েড প্লাগইনের জন্য নিম্নলিখিতটি ব্যবহার করুন:

// Test Logging
tasks.withType(Test) {
    testLogging {
        events "started", "passed", "skipped", "failed"
    }
}

নিম্নলিখিতটি দেখুন: https://stackoverflow.com/a/31665341/3521637


3
অসাধারণ. এফওয়াইআই ফিউচার মি - আপনার দুই মিনিট এন্ড্রয়েড}} ব্লকের মধ্যে না রেখে বাঁচান
শুভম চৌধুরী চৌধুরী

18

শুভমের দুর্দান্ত উত্তরের অনুসরণ হিসাবে আমি স্ট্রিংয়ের পরিবর্তে এনাম মান ব্যবহার করতে পরামর্শ দিতে চাই । টেস্টলগিং ক্লাসের ডকুমেন্টেশনটি একবার দেখুন ।

import org.gradle.api.tasks.testing.logging.TestExceptionFormat
import org.gradle.api.tasks.testing.logging.TestLogEvent

tasks.withType(Test) {
    testLogging {
        events TestLogEvent.FAILED,
               TestLogEvent.PASSED,
               TestLogEvent.SKIPPED,
               TestLogEvent.STANDARD_ERROR,
               TestLogEvent.STANDARD_OUT
        exceptionFormat TestExceptionFormat.FULL
        showCauses true
        showExceptions true
        showStackTraces true
    }
}

12

শুভম চৌধুরী চৌধুরীর উত্তরের ভিত্তিতে আমার প্রিয় সংক্ষিপ্ত সংস্করণ। এখানে চিত্র বর্ণনা লিখুন

এটি build.gradleফাইলের মধ্যে রাখুন :

test {
    afterSuite { desc, result ->
    if (!desc.parent)
        println("${result.resultType} " +
            "(${result.testCount} tests, " +
            "${result.successfulTestCount} successes, " +
            "${result.failedTestCount} failures, " +
            "${result.skippedTestCount} skipped)")
    }
}

7

গ্রেডলে অ্যান্ড্রয়েড প্লাগইন ব্যবহার করে:

gradle.projectsEvaluated {
    tasks.withType(Test) { task ->
        task.afterTest { desc, result ->
            println "Executing test ${desc.name} [${desc.className}] with result: ${result.resultType}"
        }
    }
}

তারপরে আউটপুটটি হবে:

পরীক্ষার পরীক্ষা সম্পাদন করা হচ্ছে ফলাফল রূপান্তরকরণের ফলাফলগুলি


3

শুভমের দুর্দান্ত উত্তরের মার্জ করুন এবং জেজেডি স্ট্রিংয়ের পরিবর্তে এনাম ব্যবহার করবে

tasks.withType(Test) {
   testLogging {
       // set options for log level LIFECYCLE
       events TestLogEvent.PASSED,
            TestLogEvent.SKIPPED, TestLogEvent.FAILED, TestLogEvent.STANDARD_OUT
       showExceptions true
       exceptionFormat TestExceptionFormat.FULL
       showCauses true
       showStackTraces true

    // set options for log level DEBUG and INFO
       debug {
        events TestLogEvent.STARTED, TestLogEvent.PASSED, TestLogEvent.SKIPPED, TestLogEvent.FAILED, TestLogEvent.STANDARD_OUT, TestLogEvent.STANDARD_ERROR
        exceptionFormat TestExceptionFormat.FULL
       }
       info.events = debug.events
       info.exceptionFormat = debug.exceptionFormat

       afterSuite { desc, result ->
           if (!desc.parent) { // will match the outermost suite
               def output = "Results: ${result.resultType} (${result.testCount} tests, ${result.successfulTestCount} successes, ${result.failedTestCount} failures, ${result.skippedTestCount} skipped)"
               def startItem = '|  ', endItem = '  |'
               def repeatLength = startItem.length() + output.length() + endItem.length()
               println('\n' + ('-' * repeatLength) + '\n' + startItem + output + endItem + '\n' + ('-' * repeatLength))
           }
       }
   }
}

2
আমি আপনাকে অনুরোধ করছি দয়া করে আপনার উত্তরটির আশেপাশে আরও কিছু প্রসঙ্গ যুক্ত করুন। কেবল-কোড বা লিঙ্ক-কেবল উত্তরগুলি বোঝা মুশকিল। আপনি যদি আপনার পোস্টে আরও তথ্য যুক্ত করতে পারেন তবে এটি প্রশ্নকারী এবং ভবিষ্যতের পাঠকদের উভয়কেই সহায়তা করবে।
আরবিটি

2

থেকে নিম্নলিখিত বেঞ্জামিন Muschko এর উত্তর (19 মার্চ 2011), আপনি ব্যবহার করতে পারেন -iসহ পতাকা , grep অবাঞ্ছিত লাইন এর 1000s ফিল্টার করার জন্য। উদাহরণ:

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

./gradlew test -i | grep -E " > |BUILD"

সফ্ট ফিল্টার - প্রতিটি ইউনিটের পরীক্ষার নাম এবং ফলাফল, পাশাপাশি সেটআপ ত্রুটি / ব্যতিক্রমগুলি প্রদর্শন করুন। তবে এতে কিছু অপ্রাসঙ্গিক তথ্যও অন্তর্ভুক্ত থাকবে:

./gradlew test -i | grep -E -v "^Executing |^Creating |^Parsing |^Using |^Merging |^Download |^title=Compiling|^AAPT|^future=|^task=|:app:|V/InstrumentationResultParser:"

সফ্ট ফিল্টার, বিকল্প সিনট্যাক্স: (অনুসন্ধান টোকেনগুলি পৃথক স্ট্রিংগুলিতে বিভক্ত)

./gradlew test -i | grep -v -e "^Executing " -e "^Creating " -e "^Parsing " -e "^Using " -e "^Merging " -e "^Download " -e "^title=Compiling" -e "^AAPT" -e "^future=" -e "^task=" -e ":app:" -e "V/InstrumentationResultParser:"

এটি কীভাবে কাজ করে তার ব্যাখ্যা: প্রথম কমান্ডের আউটপুট, ./gradlew test -iদ্বিতীয় কমান্ডে পাইপ করা হয় grep, যা নিয়মিত অভিব্যক্তির ভিত্তিতে অনেক অযাচিত লাইনগুলি ফিল্টার করে দেয়। "-E"নিয়মিত এক্সপ্রেশন মোড সক্ষম করে এবং এর "|"অর্থ "বা"। একটি ইউনিট পরীক্ষার নাম এবং ফলাফলটি ব্যবহার করে প্রদর্শন করার অনুমতি দেওয়া হয় " > "এবং এর সাথে সামগ্রিক স্থিতি অনুমোদিত হয় "BUILD"। সফ্ট ফিল্টারে "-v"পতাকাটির অর্থ "ধারণ করে না" এবং এর "^"অর্থ "লাইনের শুরু"। সুতরাং এটি "এক্সিকিউটিভ" দিয়ে শুরু হওয়া বা "তৈরি করা" ইত্যাদির সাথে শুরু হওয়া সমস্ত লাইনকে সরিয়ে দেয় etc.


গ্রেড 5.1 সহ অ্যান্ড্রয়েড উপকরণ ইউনিট পরীক্ষার জন্য উদাহরণ:

./gradlew connectedDebugAndroidTest --continue -i | grep -v -e \
"^Transforming " -e "^Skipping " -e "^Cache " -e "^Performance " -e "^Creating " -e \
"^Parsing " -e "^file " -e "ddms: " -e ":app:" -e "V/InstrumentationResultParser:"

গ্রেড 4.10 সহ জ্যাকো ইউনিট পরীক্ষার কভারেজের উদাহরণ:

./gradlew createDebugCoverageReport --continue -i | grep -E -v "^Executing |^Creating |^Parsing |^Using |^Merging |^Download |^title=Compiling|^AAPT|^future=|^task=|:app:|V/InstrumentationResultParser:"

0

আপনার যদি কোটলিন ডিএসএলেbuild.gradle.kts লিখিত থাকে তবে আপনি পরীক্ষার ফলাফলগুলি মুদ্রণ করতে পারেন (আমি একটি কোটলিন মাল্টি-প্ল্যাটফর্ম প্রকল্প বিকাশ করছিলাম, কোনও "জাভা" প্লাগইন প্রয়োগ করা হয়নি):

tasks.withType<AbstractTestTask> {
    afterSuite(KotlinClosure2({ desc: TestDescriptor, result: TestResult ->
        if (desc.parent == null) { // will match the outermost suite
            println("Results: ${result.resultType} (${result.testCount} tests, ${result.successfulTestCount} successes, ${result.failedTestCount} failures, ${result.skippedTestCount} skipped)")
        }
    }))
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.