टेस्ट रनर, इनवोकेशन फ़्लो की एक्ज़ीक्यूशन यूनिट होती है. टेस्ट असल में यहीं रन होते हैं.
इंटरफ़ेस
टेस्ट रनर, IRemoteTest
इंटरफ़ेस के ज़रिए तय किए जाते हैं,
इसमें run का एक आसान तरीका होता है. इसे लागू करने पर, टेस्ट रन होने पर कॉल किया जाएगा.
इससे टेस्ट रन की सबसे आसान परिभाषा तय की जा सकती है. हालांकि, असल में टेस्ट लिखने वालों को अपने टेस्ट सही तरीके से लिखने के लिए, ज़्यादा जानकारी की ज़रूरत होगी. आम तौर पर, उन्हें बिल्ड और डिवाइस की जानकारी चाहिए होगी. ऐसे में, ये इंटरफ़ेस काम आते हैं.
सामान्य कार्रवाई
आजकल इन दोनों इंटरफ़ेस का सबसे ज़्यादा इस्तेमाल किया जाता है, क्योंकि ये ज़्यादातर टेस्ट की बुनियादी ज़रूरतों को पूरा करते हैं.
- IBuildReceiver
की मदद से, टेस्ट को
IBuildInfoऑब्जेक्ट मिलता है. यह ऑब्जेक्ट, बिल्ड प्रोवाइडर के चरण में बनाया जाता है. इसमें टेस्ट सेटअप से जुड़ी सभी जानकारी और आर्टफ़ैक्ट शामिल होते हैं. - IDeviceTest
की मदद से, TF को
ITestDeviceऑब्जेक्ट मिलता है. यह ऑब्जेक्ट, टेस्ट किए जा रहे डिवाइस को दिखाता है. साथ ही, इससे इंटरैक्ट करने के लिए एक एपीआई उपलब्ध कराता है.
बेहतर
कुछ और इंटरफ़ेस भी हैं. इनकी मदद से, टेस्ट हार्नेस और टेस्ट रनर के बीच ज़्यादा जटिल इंटरैक्शन किया जा सकता है:
- ITestFilterReceiver की मदद से, टेस्ट को सिर्फ़ कुछ टेस्ट रन करने के लिए फ़िल्टर का सेट मिलता है. यह टेस्ट के सबसेट को रन करने में काम आता है.
- ITestCollector की मदद से, टेस्ट रनर, टेस्ट को असल में एक्ज़ीक्यूट करने के बजाय, सिर्फ़ ड्राई-रन कर सकता है. यह सभी टेस्ट केस की सूची इकट्ठा करने में काम आता है.
मौजूदा टेस्ट रनर
कई तरह के टेस्ट रनर पहले से मौजूद हैं. इनमें से कुछ, मुख्य टेस्ट टाइप के लिए हैं:
- AndroidJUnitTest / InstrumentationTest (डिवाइस की ओर से AJUR से जुड़ा)
- GTest (डिवाइस और होस्ट की ओर से) googletest लाइब्रेरी के साथ
- होस्ट-ड्रिवन टेस्ट (Java टेस्ट, जो होस्ट पर एक्ज़ीक्यूट होते हैं और वहां से डिवाइस को कॉल करते हैं)
- प्योर Java यूनिट टेस्ट (हमारा रनर, दोनों काम करता है)
- Python टेस्ट
- बेंचमार्क लाइब्रेरी के साथ Google Benchmark टेस्ट
ऊपर बताए गए टेस्ट रनर के अलावा, बड़ी संख्या में कस्टम टेस्ट रनर भी मौजूद हैं. ये कुछ फ़ंक्शन की जांच के लिए खास मकसद पूरे करते हैं. जैसे, बूट टेस्ट.
नया टेस्ट रनर लिखना
नया टेस्ट रनर लिखने के बारे में ज़्यादा जानकारी, टेस्ट लिखने वाले सेक्शन में उपलब्ध है.