AndroidX Test के लिए प्रोजेक्ट सेट अप करना

AndroidX टेस्ट, Jetpack लाइब्रेरी का एक कलेक्शन है. इससे आपको टेस्ट चलाने में मदद मिलती है Android ऐप्लिकेशन पर चलने वाले ऐप्लिकेशन भी हैं. यह इन लिखने में आपकी मदद करने के लिए कई टूल भी उपलब्ध कराता है टेस्ट.

उदाहरण के लिए, AndroidX Test, गतिविधियां शुरू करने के लिए JUnit4 के नियम देता है और उनके साथ JUnit4 टेस्ट में इंटरैक्ट करते हैं. इसमें यूज़र इंटरफ़ेस (यूआई) टेस्टिंग फ़्रेमवर्क भी शामिल हैं, जैसे कि जैसे, Espresso, यूज़र इंटरफ़ेस (यूआई) Automator, और Robolectric सिम्युलेटर.

AndroidX टेस्ट लाइब्रेरी जोड़ना

AndroidX Test का इस्तेमाल करने के लिए, आपको अपने ऐप्लिकेशन प्रोजेक्ट की डिपेंडेंसी में बदलाव करना होगा अपने डेवलपमेंट एनवायरमेंट के मुताबिक ऐसा करें.

ग्रेडल डिपेंडेंसी जोड़ना

अपने ऐप्लिकेशन प्रोजेक्ट की डिपेंडेंसी में बदलाव करने के लिए, यह तरीका अपनाएं:

  • पहला चरण: अपने Gradle मॉड्यूल के लिए build.gradle फ़ाइल खोलें.
  • दूसरा चरण: डेटा स्टोर करने की जगह के सेक्शन में, पक्का करें कि Google का Maven डेटा संग्रह स्थान दिखाई देता है:
  allprojects {
    repositories {
      jcenter()
      google()
    }
  }
  • तीसरा चरण: AndroidX के हर उस टेस्ट पैकेज के लिए उसका पैकेज जोड़ें जिसका आपको इस्तेमाल करना है नाम को डिपेंडेंसी सेक्शन में देखें. उदाहरण के लिए, espresso-core पैकेज जोड़ने के लिए, नीचे दी गई लाइनें:

ग्रूवी

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

Kotlin

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

ये सबसे सामान्य AndroidX Test डिपेंडेंसी हैं:

ग्रूवी

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"
}

Kotlin

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 (एपीआई लेवल 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" />