راه اندازی پروژه برای AndroidX Test

AndroidX Test مجموعه ای از کتابخانه های Jetpack است که به شما امکان می دهد آزمایش هایی را بر روی برنامه های اندروید اجرا کنید. همچنین مجموعه ای از ابزارها را برای کمک به شما در نوشتن این تست ها فراهم می کند.

به عنوان مثال، AndroidX Test قوانین JUnit4 را برای شروع فعالیت ها و تعامل با آنها در تست های JUnit4 ارائه می دهد. همچنین شامل چارچوب‌های تست UI مانند اسپرسو، UI Automator و شبیه‌ساز Robolectric است.

کتابخانه های تست AndroidX را اضافه کنید

برای استفاده از AndroidX Test، باید وابستگی های پروژه برنامه خود را در محیط توسعه خود تغییر دهید.

وابستگی های Gradle را اضافه کنید

برای تغییر وابستگی های پروژه برنامه خود، مراحل زیر را کامل کنید:

  • مرحله 1 : فایل build.gradle را برای ماژول Gradle خود باز کنید.
  • مرحله 2 : در بخش مخازن، مطمئن شوید که مخزن Maven Google ظاهر می شود:
  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")
}

صفحه یادداشت‌های انتشار حاوی جدولی با آخرین نسخه‌های هر مصنوع است.

برای مستندات مرجع خاص در مورد این کتابخانه ها به Package Index یا Class Index مراجعه کنید.

پروژه هایی که از کلاس های منسوخ استفاده می کنند

اگر برنامه شما از تست‌هایی استفاده می‌کند که به کلاس‌های android.test مبتنی بر JUnit3 منسوخ شده‌اند، مانند InstrumentationTestCase و TestSuiteLoader ، خطوط زیر را در بخش android فایل اضافه کنید:

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

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

اعلان های مانیفست را اضافه کنید

برای اجرای آزمایش‌هایی که به کلاس‌های android.test مبتنی بر JUnit3 منسوخ شده‌اند، عناصر <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" />