इस दस्तावेज़ में सीधे कमांड लाइन से टेस्ट चलाने का तरीका बताया गया है. यह यह मान लिया है कि आपको Android ऐप्लिकेशन बनाना आता है और टेस्ट लिखें. अपने एपीआई की मदद से, ऐप्लिकेशन के तौर पर, Android पर टेस्ट ऐप्लिकेशन देखें.
जब Gradle बिल्ड सिस्टम का इस्तेमाल करके अपना ऐप्लिकेशन बनाया जाता है, तब Android Gradle प्लगिन की मदद से, अपने Gradle से टेस्ट किए जा सकते हैं कमांड लाइन का इस्तेमाल करके प्रोजेक्ट. ज़्यादा बेहतर कंट्रोल के लिए, Android डीबग ब्रिज के ज़रिए जांच करने का विकल्प चुनें (adb) शेल. यह तब फ़ायदेमंद हो सकता है, जब लगातार इंटिग्रेशन वाला एनवायरमेंट.
कमांड लाइन की मदद से, ऑटोमेटेड इंस्ट्रुमेंट वाले टेस्ट चलाने का तरीका जानने के लिए ऐसे वर्चुअल डिवाइस जिन्हें Gradle आपके लिए मैनेज करता है, Gredle की मदद से अपने टेस्ट को स्केल करें मैनेज किए जा रहे डिवाइस.
Gradle के साथ टेस्ट करना
'Android Gradle प्लग इन' की मदद से, Gradle प्रोजेक्ट से जांच की जा सकती है. इसके लिए कमांड लाइन.
यहां दी गई टेबल में, Gradle के साथ टेस्ट करने का तरीका बताया गया है:
यूनिट टेस्ट टाइप | चलाने के लिए निर्देश | जांच के नतीजे की जगह |
---|---|---|
लोकल यूनिट टेस्ट |
test टास्क चलाएं:
|
एचटीएमएल के टेस्ट नतीजे की फ़ाइलें:path_to_your_project/module_name/build/reports/tests/
डायरेक्ट्री.
एक्सएमएल के टेस्ट नतीजे की फ़ाइलें: |
इंस्ट्रुमेंट की गई इकाई की जांच |
connectedAndroidTest टास्क चलाएं:
|
एचटीएमएल के टेस्ट नतीजे की फ़ाइलें:path_to_your_project/module_name/build/reports/androidTests/connected/
डायरेक्ट्री.
एक्सएमएल के टेस्ट नतीजे की फ़ाइलें: |
Gradle सहायता
टास्क के नाम का छोटा रूप.
उदाहरण के लिए, connectedAndroidTest
टास्क को ऐसे शुरू किया जा सकता है
निम्न आदेश दर्ज करना:
./gradlew cAT
आपके पास Gradle टास्क check
और connectedCheck
को चलाने का विकल्प भी है. ये
टास्क, आपके स्थानीय या इंस्ट्रुमेंट वाले टेस्ट क्रम से चलाते हैं, लेकिन
अन्य Gradle प्लग इन से जोड़े गए अन्य चेक को भी शामिल करना चाहिए.
किसी मॉड्यूल पर टेस्ट चलाना
test
और connectedAndroidTest
टास्क, आपके हर मॉड्यूल की जांच करते हैं
प्रोजेक्ट. किसी खास मॉड्यूल पर टेस्ट
प्रीफ़िक्स के तौर पर test
या connectedAndroidTest
टास्क के साथ मॉड्यूल का नाम जोड़ें
कोलन (:). उदाहरण के लिए, निम्न आदेश केवल
mylibrary
मॉड्यूल:
./gradlew mylibrary:connectedAndroidTest
बिल्ड के वैरिएंट पर टेस्ट चलाना
test
और connectedAndroidTest
टास्क, हर टास्क की जांच करते हैं
वैरिएंट बनाएं. आप
नीचे दिए गए सिंटैक्स का इस्तेमाल करके खास बिल्ड वैरिएंट:
- लोकल यूनिट टेस्ट के लिए:
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है./gradlew testVariantNameUnitTest
- इंस्ट्रुमेंट्ड टेस्ट के लिए:
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है./gradlew connectedVariantNameAndroidTest
टेस्ट करने के खास तरीके या क्लास चलाना
लोकल यूनिट टेस्ट करते समय, Gradle आपको
--tests
फ़्लैग. उदाहरण के लिए, निम्न आदेश केवल
sampleTestMethod
, बताए गए बिल्ड वैरिएंट के लिए टेस्ट करता है. इस बारे में ज़्यादा जानने के लिए
--tests
फ़्लैग का इस्तेमाल करके, Gradle का दस्तावेज़ पढ़ें
टेस्ट फ़िल्टर करना.
./gradlew testVariantNameUnitTest --tests '*.sampleTestMethod'
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
adb की मदद से टेस्ट चलाना
जब Android डीबग ब्रिज (adb), ऐसे कई और विकल्प हैं किसी भी अन्य तरीके के मुकाबले, चलाने के लिए टेस्ट चुनना. कोई एक व्यक्ति भी चुना जा सकता है जांच करने के तरीके, कस्टम एनोटेशन के हिसाब से जांच को फ़िल्टर करें या जांच के बारे में बताएं के विकल्प. चूंकि परीक्षण रन को पूरी तरह कमांड लाइन से नियंत्रित किया जाता है, इसलिए आप शेल स्क्रिप्ट से अपने टेस्ट को कई तरह से पसंद के मुताबिक बना सकते हैं.
कमांड लाइन से जांच करने के लिए, adb shell
चलाकर कमांड लाइन शुरू करें
शेल भी खोलें. उस शेल के अंदर आप
ऐक्टिविटी मैनेजर
ऐसा करने के लिए, am
निर्देश का इस्तेमाल करें. साथ ही, इसके instrument
सबकमांड का इस्तेमाल करें.
शॉर्टकट के तौर पर, आप adb शेल शुरू कर सकते हैं, am instrument
को कॉल कर सकते हैं, और
कमांड लाइन, सभी को एक इनपुट लाइन पर फ़्लैग करती है. डिवाइस पर शेल खुलता है या
एम्युलेटर, आपके टेस्ट चलाता है, आउटपुट देता है, और फिर कमांड लाइन पर वापस जाता है
अपने कंप्यूटर पर.
am instrument
से टेस्ट करने के लिए:
- अपना मुख्य ऐप्लिकेशन बनाएं या फिर से बनाएं और टेस्ट पैकेज.
- अपना टेस्ट पैकेज और मुख्य पैकेज इंस्टॉल करें ऐप्लिकेशन की Android पैकेज फ़ाइलें (APK फ़ाइलें) हों या एम्युलेटर.
कमांड लाइन पर, यह लिखें:
adb shell am instrument -w <test_package_name>/<runner_class>
जहां
<test_package_name>
, आपके टेस्ट के Android पैकेज का नाम है ऐप्लिकेशन है और<runner_class>
, Android टेस्ट रनर क्लास का नाम है इस्तेमाल कर रहे हैं. Android पैकेज का नाम, मेनिफ़ेस्ट एलिमेंट के पैकेज एट्रिब्यूट की वैल्यू शामिल करें (AndroidManifest.xml
).आम तौर पर, Android की जांच करने वाली रनर क्लास
AndroidJUnitRunner
:adb shell am instrument -w com.android.example/androidx.test.runner.AndroidJUnitRunner
आपकी जांच के नतीजे, STDOUT
में दिखते हैं.
am इंस्ट्रुमेंट फ़्लैग
am instrument
निर्देश के साथ इस्तेमाल किए जाने वाले सभी फ़्लैग की सूची ढूंढने के लिए,
adb shell am help
दौड़ें. कुछ अहम फ़्लैग के बारे में इसमें बताया गया है
निम्न तालिका:
चिह्नित करें | वैल्यू | ब्यौरा |
---|---|---|
-w
|
(कोई नहीं) |
इससे am instrument को इंस्ट्रुमेंटेशन पूरा होने तक इंतज़ार करना पड़ता है
खुद को खत्म करने से पहले खत्म हो जाता है. ऐसा करने से
तब तक खुला रहेगा, जब तक जांच पूरी नहीं हो जाती. यह फ़्लैग इन कामों के लिए ज़रूरी है
अपने टेस्ट के नतीजे देख सकें.
|
-r
|
(कोई नहीं) |
आउटपुट, रॉ फ़ॉर्मैट में मिलता है. जब चाहें, तब इस फ़्लैग का इस्तेमाल करें
परफ़ॉर्मेंस के मेज़रमेंट इकट्ठा कर सकते हैं, ताकि उन्हें
टेस्ट के नतीजे. यह फ़्लैग, फ़्लैग के साथ इस्तेमाल करने के लिए बनाया गया है
-e perf true (इस दस्तावेज़ में दर्ज है
am इंस्ट्रुमेंट के विकल्प) सेक्शन पर जाएं.
|
-e
|
<test_options>
|
की-वैल्यू पेयर के तौर पर टेस्टिंग के विकल्प उपलब्ध कराता है. कॉन्टेंट बनाने
am instrument टूल इन्हें तय की गई
इंस्ट्रुमेंटेशन क्लास
onCreate()
तरीका. आप एक से ज़्यादा बार दोहराए जा सकते हैं
-e <test_options> . कुंजियां और मान ये हैं
इसमें बताया गया है
am इंस्ट्रुमेंट के विकल्प सेक्शन पर जाएं. आप
इनके साथ केवल इन की-वैल्यू पेयर का इस्तेमाल करें
AndroidJUnitRunner
या InstrumentationTestRunner के साथ
और इसकी सब-क्लास शामिल हैं. किसी अन्य क्लास के साथ उनका इस्तेमाल करने से कोई असर नहीं पड़ता.
|
--no-hidden-api-checks
|
(कोई नहीं) | छिपे हुए एपीआई के इस्तेमाल पर लगी पाबंदियां बंद करता है. ज़्यादा के लिए यह जानकारी कि छिपे हुए एपीआई क्या हैं और इसका आपके कारोबार पर क्या असर पड़ सकता है ऐप्लिकेशन, पढ़ें बिना SDK टूल वाले इंटरफ़ेस पर पाबंदियां. |
am इंस्ट्रुमेंट के विकल्प
am instrument
टूल, जांच के विकल्पों को इन चीज़ों के लिए पास करता है
AndroidJUnitRunner
या InstrumentationTestRunner
की-वैल्यू पेयर के तौर पर दिखाया जा सकता है. इसके लिए, इस सिंटैक्स के साथ -e
फ़्लैग का इस्तेमाल किया जाता है:
-e <key> <value>
कुछ कुंजियों को एक से ज़्यादा मान स्वीकार किए जाते हैं. आपको
कॉमा लगाकर अलग की गई सूची. उदाहरण के लिए,
AndroidJUnitRunner
, package
कुंजी के लिए एक से ज़्यादा वैल्यू देता है:
adb shell am instrument -w -e package com.android.test.package1,com.android.test.package2 \
> com.android.test/androidx.test.runner.AndroidJUnitRunner
नीचे दी गई टेबल में उन की-वैल्यू पेयर की सूची दी गई है जिनका इस्तेमाल अपने टेस्ट रनर के साथ किया जा सकता है:
सुरक्षा कुंजी | वैल्यू | ब्यौरा |
---|---|---|
package
|
<Java_package_name>
|
इनमें से किसी एक के लिए, पूरी तरह क्वालिफ़ाइड Java पैकेज नाम पैकेज को टेस्ट ऐप्लिकेशन में शामिल करें. इसका इस्तेमाल करने वाली कोई भी टेस्ट केस क्लास पैकेज का नाम चलाया गया. ध्यान दें कि यह Android पैकेज का नाम; टेस्ट पैकेज में Android पैकेज का नाम, लेकिन उसमें कई Java पैकेज हो सकते हैं. |
class |
<class_name> |
किसी एक टेस्ट केस के लिए, पूरी तरह क्वालिफ़ाइड Java क्लास नाम क्लास. सिर्फ़ इस टेस्ट केस क्लास को चलाया जाता है. |
<class_name>#method name |
पूरी तरह क्वालिफ़ाइड टेस्ट केस क्लास का नाम और उसका कोई एक तरीका. सिर्फ़ यह तरीका अपनाया जाता है. क्लास के बीच में हैश मार्क (#) नोट करें नाम और तरीके का नाम. | |
func |
true |
उन सभी टेस्ट क्लास को चलाता है जो एक्सटेंडेड हैं
InstrumentationTestCase .
|
unit |
true |
ऐसी सभी टेस्ट क्लास चलाता है जो दोनों में से किसी एक को भी एक्सपैंड नहीं करते
InstrumentationTestCase या
PerformanceTestCase .
|
size |
[small | medium | large ]
|
साइज़ के हिसाब से जानकारी देने वाला टेस्ट करने का तरीका चलाता है. ये एनोटेशन
@SmallTest , @MediumTest , और
@LargeTest .
|
perf |
true |
लागू की जाने वाली सभी टेस्ट क्लास चलाता है
PerformanceTestCase .
इस विकल्प का इस्तेमाल करते समय, इसके लिए -r फ़्लैग तय करें
am instrument ताकि आउटपुट को रॉ फ़ॉर्मैट में रखा जा सके
और उसे टेस्ट नतीजों के तौर पर फिर से फ़ॉर्मैट नहीं किया गया हो.
|
debug |
true |
डीबग मोड में जांच करता है. |
log |
true |
सभी तय टेस्ट लोड और लॉग करता है, लेकिन उन्हें नहीं चलाता है. जांच
जानकारी, STDOUT में दिखती है. पुष्टि करने के लिए इसका इस्तेमाल करें
कॉम्बिनेशन की जांच करें.
|
emma |
true |
EMMA कोड कवरेज का विश्लेषण करता है और आउटपुट को इस पर लिखता है
डिवाइस पर /data/<app_package>/coverage.ec . यहां की यात्रा पर हूं
इसे बदलने के लिए, coverageFile कुंजी का इस्तेमाल करें
जिसकी जानकारी नीचे दी गई एंट्री में दी गई है.
ध्यान दें: इस विकल्प के लिए ईएमएमए इंस्ट्रुमेंट की ज़रूरत होती है
बिल्ड का टेस्ट किया जा सकता है, जिसे आप इसकी मदद से जनरेट कर सकते हैं
|
coverageFile |
<filename> |
यह EMMA कवरेज फ़ाइल की डिफ़ॉल्ट जगह को बदल देता है
डिवाइस. इस वैल्यू को पाथ और फ़ाइल के नाम के तौर पर, UNIX फ़ॉर्मैट में बताएं.
डिफ़ॉल्ट फ़ाइल नाम का वर्णन
emma कुंजी.
|
-e
फ़्लैग का इस्तेमाल करते समय इन बातों का ध्यान रखें:
am instrument
शुरू करता हैonCreate(Bundle)
Bundle
में की-वैल्यू शामिल हो पेयर.package
कुंजी कोclass
कुंजी के मुकाबले प्राथमिकता दी जाती है. अगर आप और फिर उस पैकेज, Android में किसी क्लास को अलग से तय करें पैकेज की सभी जांच करता है और क्लास की कुंजी को अनदेखा कर देता है.func
कुंजी औरunit
कुंजी अलग-अलग होती हैं.
इस्तेमाल करने के उदाहरण
यहां दिए सेक्शन में, टेस्ट चलाने के लिए am instrument
का इस्तेमाल करने के उदाहरण दिए गए हैं.
वे नीचे दी गई संरचना पर आधारित होते हैं:
- जांच पैकेज को Android पैकेज का नाम
com.android.demo.app.tests
मिला है. - दो इंस्ट्रुमेंटेड टेस्ट क्लास:
TestClass1
, जिसमेंtestMethod1
तरीका शामिल है.TestClass2
, जिसमेंtestMethod2
औरtestMethod3
जांच के तरीके शामिल हैं.
- इस टूल की जांच करने के लिए,
AndroidJUnitRunner
.
पूरा टेस्ट पैकेज चलाएं
टेस्ट पैकेज में सभी टेस्ट क्लास चलाने के लिए, यह डालें:
adb shell am instrument -w com.android.demo.app.tests/androidx.test.runner.AndroidJUnitRunner
टेस्ट केस क्लास में सभी टेस्ट चलाना
TestClass1
क्लास में सभी टेस्ट चलाने के लिए, यह डालें:
adb shell am instrument -w \
> -e class com.android.demo.app.tests.TestClass1 \
> com.android.demo.app.tests/androidx.test.runner.AndroidJUnitRunner
जांच का सबसेट चुनना
TestClass2
में TestClass1
क्लास और testMethod3
तरीके में सभी टेस्ट चलाने के लिए,
डालें:
adb shell am instrument -w \
> -e class com.android.demo.app.tests.TestClass1,com.android.demo.app.tests.TestClass2#testMethod3 \
> com.android.demo.app.tests/androidx.test.runner.AndroidJUnitRunner
आपको यहां इस्तेमाल के ज़्यादा उदाहरण दिखेंगे
AndroidJUnitRunner
एपीआई का संदर्भ.