हमारा सुझाव है कि 27 मार्च, 2025 से AOSP को बनाने और उसमें योगदान देने के लिए, aosp-main
के बजाय android-latest-release
का इस्तेमाल करें. ज़्यादा जानकारी के लिए, AOSP में हुए बदलाव लेख पढ़ें.
मॉड्यूल कंट्रोलर का इस्तेमाल करना
संग्रह की मदद से व्यवस्थित रहें
अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.
AndroidTest.xml
से तय किए गए हर सुइट मॉड्यूल में एक खास module_controller
ऑब्जेक्ट हो सकता है. इससे मॉड्यूल के कुछ व्यवहार में बदलाव हो सकता है:
कुछ शर्तों के आधार पर, मॉड्यूल को चलाया जाए या नहीं
BaseModuleController को लागू करके और इसे AndroidTest.xml
में इस तरह जोड़कर:
<object type="module_controller" class="com.android.tradefed.testtype.suite.module.<NAME>" />
मॉड्यूल कंट्रोलर का इस्तेमाल यह तय करने के लिए किया जाएगा कि public abstract RunStrategy shouldRun(IInvocationContext context);
को लागू करने के आधार पर, मॉड्यूल को चलाया जाना चाहिए या नहीं.
गड़बड़ी होने पर कुछ लॉग इकट्ठा किए जाएं या नहीं
पूरा सुइट चलाते समय, सुइट के लेवल पर कुछ लॉग इकट्ठा करने का अनुरोध किया जा सकता है. जैसे, स्क्रीनशॉट, गड़बड़ी की रिपोर्ट, logcat. हालांकि, कुछ मॉड्यूल के लिए, हो सकता है कि अनुरोध किए गए किसी लॉग की कोई वैल्यू न हो. साथ ही, उसे इकट्ठा करने में समय बर्बाद होगा. ऐसे में, मॉड्यूल साफ़ तौर पर बता सकता है कि उसे किन लॉग में दिलचस्पी है:
<object type="module_controller"
class="com.android.tradefed.testtype.suite.module.TestFailureModuleController">
<option name="screenshot-on-failure" value="<true OR false>" />
<option name="bugreportz-on-failure" value="<true OR false>" />
<option name="logcat-on-failure" value="<true OR false>" />
</object>
ध्यान दें: अगर हो सके, तो कंट्रोलर को सामान्य तौर पर लागू किया जाना चाहिए, ताकि उन्हें फिर से इस्तेमाल करने की सुविधा ज़्यादा से ज़्यादा मिल सके. साथ ही, किसी मॉड्यूल की स्थिति के आधार पर उसे स्किप करने की अनुमति, मॉड्यूल के मालिक को ही देनी चाहिए.
इस पेज पर मौजूद कॉन्टेंट और कोड सैंपल कॉन्टेंट के लाइसेंस में बताए गए लाइसेंस के हिसाब से हैं. Java और OpenJDK, Oracle और/या इससे जुड़ी हुई कंपनियों के ट्रेडमार्क या रजिस्टर किए हुए ट्रेडमार्क हैं.
आखिरी बार 2025-07-27 (UTC) को अपडेट किया गया.
[[["समझने में आसान है","easyToUnderstand","thumb-up"],["मेरी समस्या हल हो गई","solvedMyProblem","thumb-up"],["अन्य","otherUp","thumb-up"]],[["वह जानकारी मौजूद नहीं है जो मुझे चाहिए","missingTheInformationINeed","thumb-down"],["बहुत मुश्किल है / बहुत सारे चरण हैं","tooComplicatedTooManySteps","thumb-down"],["पुराना","outOfDate","thumb-down"],["अनुवाद से जुड़ी समस्या","translationIssue","thumb-down"],["सैंपल / कोड से जुड़ी समस्या","samplesCodeIssue","thumb-down"],["अन्य","otherDown","thumb-down"]],["आखिरी बार 2025-07-27 (UTC) को अपडेट किया गया."],[],[],null,["# Employ module controllers\n\nEach suite module (defined by `AndroidTest.xml`) can contain a special\n`module_controller` object that can alter some behavior of the module:\n\nWhether to run the module or not based on some conditions\n---------------------------------------------------------\n\nBy implementing [BaseModuleController](https://android.googlesource.com/platform/tools/tradefederation/+/refs/heads/android16-release/src/com/android/tradefed/testtype/suite/module/BaseModuleController.java)\nand adding it to the `AndroidTest.xml` like this: \n\n \u003cobject type=\"module_controller\" class=\"com.android.tradefed.testtype.suite.module.\u003cNAME\u003e\" /\u003e\n\nThe module controller will be used to determine whether the module should run\nor not, based on the\n`public abstract RunStrategy shouldRun(IInvocationContext context);`\nimplementation.\n\nWhether to collect some logs or not on failures\n-----------------------------------------------\n\nWhen running a full suite, it's possible to request at the suite level the\ncollection of some logs on failures (screenshot, bugreport, logcat). But for\nsome modules, a particular log requested might not have any value and will\nsimply waste time to be collected. In that situation, a module can explicitly\nspecify which logs they are interested in: \n\n \u003cobject type=\"module_controller\"\n class=\"com.android.tradefed.testtype.suite.module.TestFailureModuleController\"\u003e\n \u003coption name=\"screenshot-on-failure\" value=\"\u003ctrue OR false\u003e\" /\u003e\n \u003coption name=\"bugreportz-on-failure\" value=\"\u003ctrue OR false\u003e\" /\u003e\n \u003coption name=\"logcat-on-failure\" value=\"\u003ctrue OR false\u003e\" /\u003e\n \u003c/object\u003e\n\nNOTE: Implementation of controllers should be generic if possible in order to\nmaximize re-usability. And skipping a module based on its condition should\nbe reviewed by the module owner to get the approval that skipping a module is\nthe proper behavior for them."]]