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