AndroidX পরীক্ষার জন্য প্রকল্প সেট আপ করুন

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

উদাহরণস্বরূপ, AndroidX Test JUnit4 পরীক্ষায় ক্রিয়াকলাপ শুরু করার এবং তাদের সাথে ইন্টারঅ্যাক্ট করার জন্য JUnit4 নিয়ম প্রদান করে। এতে Espresso, UI Automator এবং Robolectric simulator এর মতো UI টেস্টিং ফ্রেমওয়ার্কও রয়েছে।

AndroidX টেস্ট লাইব্রেরি যোগ করুন

AndroidX টেস্ট ব্যবহার করার জন্য, আপনাকে আপনার ডেভেলপমেন্ট পরিবেশের মধ্যে আপনার অ্যাপ প্রোজেক্টের নির্ভরতা পরিবর্তন করতে হবে।

গ্রেডল নির্ভরতা যোগ করুন

আপনার অ্যাপ প্রজেক্টের নির্ভরতা পরিবর্তন করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:

  • ধাপ ১ : আপনার Gradle মডিউলের জন্য build.gradle ফাইলটি খুলুন।
  • ধাপ ২ : রিপোজিটরি বিভাগে, নিশ্চিত করুন যে গুগলের ম্যাভেন রিপোজিটরিটি প্রদর্শিত হচ্ছে:
  allprojects {
    repositories {
      jcenter()
      google()
    }
  }
  • ধাপ ৩ : আপনি যে প্রতিটি AndroidX টেস্ট প্যাকেজ ব্যবহার করতে চান, তার প্যাকেজের নাম নির্ভরতা বিভাগে যোগ করুন। উদাহরণস্বরূপ, espresso-core প্যাকেজ যোগ করতে, নিম্নলিখিত লাইনগুলি যোগ করুন:

খাঁজকাটা

dependencies {
        ...
        androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion"
    }

কোটলিন

dependencies {
        ...
        androidTestImplementation('androidx.test.espresso:espresso-core:$espressoVersion')
    }

এগুলি হল সবচেয়ে সাধারণ AndroidX টেস্ট নির্ভরতা:

খাঁজকাটা

dependencies {
    // Core library
    androidTestImplementation "androidx.test:core:$androidXTestVersion0"

    // AndroidJUnitRunner and JUnit Rules
    androidTestImplementation "androidx.test:runner:$testRunnerVersion"
    androidTestImplementation "androidx.test:rules:$testRulesVersion"

    // Assertions
    androidTestImplementation "androidx.test.ext:junit:$testJunitVersion"
    androidTestImplementation "androidx.test.ext:truth:$truthVersion"

    // Espresso dependencies
    androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion"
    androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion"
    androidTestImplementation "androidx.test.espresso:espresso-intents:$espressoVersion"
    androidTestImplementation "androidx.test.espresso:espresso-accessibility:$espressoVersion"
    androidTestImplementation "androidx.test.espresso:espresso-web:$espressoVersion"
    androidTestImplementation "androidx.test.espresso.idling:idling-concurrent:$espressoVersion"

    // The following Espresso dependency can be either "implementation",
    // or "androidTestImplementation", depending on whether you want the
    // dependency to appear on your APK’"s compile classpath or the test APK
    // classpath.
    androidTestImplementation "androidx.test.espresso:espresso-idling-resource:$espressoVersion"
}

কোটলিন

dependencies {
    // Core library
    androidTestImplementation("androidx.test:core:$androidXTestVersion")

    // AndroidJUnitRunner and JUnit Rules
    androidTestImplementation("androidx.test:runner:$testRunnerVersion")
    androidTestImplementation("androidx.test:rules:$testRulesVersion")

    // Assertions
    androidTestImplementation("androidx.test.ext:junit:$testJunitVersion")
    androidTestImplementation("androidx.test.ext:truth:$truthVersion")

    // Espresso dependencies
    androidTestImplementation( "androidx.test.espresso:espresso-core:$espressoVersion")
    androidTestImplementation( "androidx.test.espresso:espresso-contrib:$espressoVersion")
    androidTestImplementation( "androidx.test.espresso:espresso-intents:$espressoVersion")
    androidTestImplementation( "androidx.test.espresso:espresso-accessibility:$espressoVersion")
    androidTestImplementation( "androidx.test.espresso:espresso-web:$espressoVersion")
    androidTestImplementation( "androidx.test.espresso.idling:idling-concurrent:$espressoVersion")

    // The following Espresso dependency can be either "implementation",
    // or "androidTestImplementation", depending on whether you want the
    // dependency to appear on your APK"s compile classpath or the test APK
    // classpath.
    androidTestImplementation( "androidx.test.espresso:espresso-idling-resource:$espressoVersion")
}

রিলিজ নোটস পৃষ্ঠায় প্রতিটি শিল্পকর্মের সর্বশেষ সংস্করণ সহ একটি সারণী রয়েছে।

এই লাইব্রেরিগুলির নির্দিষ্ট রেফারেন্স ডকুমেন্টেশনের জন্য প্যাকেজ সূচক বা শ্রেণি সূচক দেখুন।

অবচিত ক্লাস ব্যবহার করে প্রকল্পগুলি

যদি আপনার অ্যাপটি এমন পরীক্ষা ব্যবহার করে যা JUnit3-ভিত্তিক android.test ক্লাসের উপর নির্ভর করে, যেমন InstrumentationTestCase এবং TestSuiteLoader , তাহলে ফাইলের android বিভাগে নিম্নলিখিত লাইনগুলি যোগ করুন:

android {
    ...
    useLibrary 'android.test.runner'

    useLibrary 'android.test.base'
    useLibrary 'android.test.mock'
  }

ম্যানিফেস্ট ঘোষণা যোগ করুন

অপ্রচলিত JUnit3-ভিত্তিক android.test ক্লাসের উপর নির্ভরশীল পরীক্ষা চালানোর জন্য, আপনার পরীক্ষা অ্যাপের ম্যানিফেস্টে প্রয়োজনীয় <uses-library> উপাদান যোগ করুন। উদাহরণস্বরূপ, যদি আপনি android.test.runner লাইব্রেরির উপর নির্ভরশীল পরীক্ষা যোগ করেন, তাহলে আপনার অ্যাপের ম্যানিফেস্টে নিম্নলিখিত উপাদান যোগ করুন:

<!-- You don't need to include android:required="false" if your app's

   minSdkVersion is 28 or higher. -->

<uses-library android:name="android.test.runner"

       android:required="false" />

কোন লাইব্রেরিতে কোন JUnit-ভিত্তিক ক্লাস আছে তা নির্ধারণ করতে, JUnit-ভিত্তিক লাইব্রেরি দেখুন।

অবচিত ক্লাস ব্যবহার করার সময় এবং Android 9 বা টার্গেট করার সময় বিবেচনাগুলি

উচ্চতর

এই বিভাগের নির্দেশিকা শুধুমাত্র তখনই প্রযোজ্য হবে যখন আপনি Android 9 (API লেভেল 28) বা তার বেশি ভার্সন ব্যবহার করেন এবং আপনার অ্যাপের ন্যূনতম SDK ভার্সন Android 9 এ সেট করা থাকে।

android.test.runner লাইব্রেরি মূলত android.test.base এবং android.test.mock লাইব্রেরির উপর নির্ভর করে। যদি আপনার অ্যাপটি শুধুমাত্র android.test.base বা android.test.mock থেকে ক্লাস ব্যবহার করে, তাহলে আপনি লাইব্রেরিগুলি নিজেই অন্তর্ভুক্ত করতে পারেন:

<!-- For both of these declarations, you don't need to include
   android:required="false" if your app's minSdkVersion is 28
   or higher. -->

<uses-library android:name="android.test.base"
       android:required="false" />
<uses-library android:name="android.test.mock"
       android:required="false" />