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

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

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

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

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

Gradle নির্ভরতা যোগ করুন

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

  • ধাপ 1 : আপনার Gradle মডিউলের জন্য build.gradle ফাইলটি খুলুন।
  • ধাপ 2 : সংগ্রহস্থল বিভাগে, নিশ্চিত করুন যে Google এর Maven সংগ্রহস্থল প্রদর্শিত হচ্ছে:
  allprojects {
    repositories {
      jcenter()
      google()
    }
  }
  • ধাপ 3 : প্রতিটি 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" />