साझाकरण कॉन्फ़िगर करें

यह पृष्ठ बताता है कि एक सूट मॉड्यूल (के लिए धुन के लिए संभव है AndroidTest.xml ) sharding के माध्यम से और प्रयोगशाला में निरंतर निष्पादन के दौरान सबसे अच्छी गति प्रदर्शन मिलता है। हम प्रत्येक का उपयोग करने के लिए तर्कसंगत के साथ एक सामान्य तरीके से विकल्पों का वर्णन करने का प्रयास करेंगे।

प्रयोगशाला में एक सूट को लगातार चलाते समय, समग्र पूर्णता समय को कम करने के लिए आमतौर पर सूट को कई उपकरणों में विभाजित किया जाता है। हार्नेस आमतौर पर प्रत्येक शार्ड के निष्पादन समय को संतुलित करने का प्रयास करता है ताकि समग्र पूर्णता समय को कम किया जा सके (जब अंतिम शार्ड समाप्त हो जाए); लेकिन कुछ परीक्षणों की प्रकृति के कारण, हमारे पास हमेशा पर्याप्त आत्मनिरीक्षण नहीं होता है और कुछ व्यवहार को ट्यून करने के लिए मॉड्यूल स्वामी की आवश्यकता होती है।

शार्पेबल या शार्पेबल नहीं?

यह एक मॉड्यूल (टैग करने के लिए संभव है AndroidTest.xml के साथ) <option name="not-shardable" value="true" /> दोहन है कि यह sharded नहीं किया जाना चाहिए सूचित करने के लिए।

एक सामान्य मॉड्यूल में, हार्नेस को अपने मॉड्यूल (डिफ़ॉल्ट व्यवहार) को शार्प करने देना सही काम है। लेकिन कुछ मामलों में, आप उस व्यवहार को ओवरराइड करना चाह सकते हैं:

  • जब आपके मॉड्यूल का सेटअप महंगा हो:

एक मॉड्यूल साझा करना तैयारी में परिणाम देता है (एपीके स्थापित करें, फ़ाइल पुश करें, आदि) संभवतः शामिल प्रति डिवाइस एक बार चलाएं। यदि आपका मॉड्यूल सेटअप लंबा और महंगा है और परीक्षण के रनटाइम की तुलना में दोहराने लायक नहीं है, तो आपको अपने मॉड्यूल को गैर-शार्ड करने योग्य के रूप में टैग करना चाहिए।

  • जब आपके मॉड्यूल में परीक्षणों की संख्या कम हो:

सभी परीक्षण मामलों में एक मॉड्यूल परिणाम साझा करना संभवतः विभिन्न उपकरणों पर स्वतंत्र रूप से निष्पादित हो रहा है। यह पहले बिंदु से संबंधित है; यदि आपके परीक्षणों की संख्या कम है, तो हो सकता है कि आपके पास एक ही परीक्षण हो या कुछ टुकड़ों में कोई परीक्षण न हो, जो तैयारी के किसी भी चरण को काफी महंगा बना देगा। उदाहरण के लिए, एकल परीक्षण मामले के लिए एपीके स्थापित करना आमतौर पर इसके लायक नहीं है।

इंस्ट्रुमेंटेशन टेस्ट: शार्क की अधिकतम संख्या?

के माध्यम से एक उपकरण परीक्षण चल रहा है AndroidJUnitTest दोहन करने के लिए का खुलासा नहीं करता जब तक हम वास्तव स्थापित करने और APK चलाने कितने परीक्षण उपकरण का हिस्सा हैं। ये ऑपरेशन महंगे हैं और सूट के सभी मॉड्यूल भाग के लिए समय पर निष्पादित नहीं किया जा सकता है।

हार्नेस इंस्ट्रूमेंटेशन टेस्ट को अधिक शार्प कर सकता है और कुछ खाली शार्क के साथ समाप्त हो सकता है; छह शार्प में पांच परीक्षणों के साथ एक इंस्ट्रूमेंटेशन टेस्ट को शार्प करने के परिणामस्वरूप एक टेस्ट के साथ पांच शार्क और बिना टेस्ट के एक शार्ड होता है। इनमें से प्रत्येक शार्क को एक महंगे एपीके इंस्टॉलेशन की आवश्यकता होगी।

तो उपकरण परीक्षण APK में परीक्षण की संख्या कम है, साथ मॉड्यूल टैगिंग जब <option name="not-shardable" value="true" /> दोहन पता चला है कि मॉड्यूल sharding इसके लायक नहीं है की अनुमति होगी।

AndroidJUnitTest धावक एक विशेष यह टुकड़े इसे में ठीकरा करने की अनुमति है की अधिकतम संख्या निर्दिष्ट करने की अनुमति का विकल्प है: <option name="ajur-max-shard" value="5" />

यह आपको यह निर्दिष्ट करने की अनुमति देता है कि इनवोकेशन स्तर पर अनुरोध किए गए शार्क की संख्या की परवाह किए बिना इंस्ट्रूमेंटेशन को अधिकतम कितनी बार शार्प किया जा सकता है। डिफ़ॉल्ट रूप से, इंस्ट्रुमेंटेशन को आमंत्रण के लिए अनुरोधित शार्क की संख्या में विभाजित किया जाएगा।

उदाहरण के लिए, अपने उपकरण परीक्षण APK केवल दो परीक्षण मामलों में शामिल है लेकिन आप अभी भी यह ठीकरा के लिए, एक होने चाहते हैं ajur-max-shard का मूल्य 2 यह सुनिश्चित करना होगा कि आप खाली टुकड़े रचना नहीं करते हैं।