नतीजे की रिपोर्ट बनाने वाला टूल बनाना

इस पेज पर, नया नतीजा रिपोर्टर लागू करने और उसे जांच के लिए कॉन्फ़िगर करने के बुनियादी तरीकों के बारे में बताया गया है.

मुख्य इंटरफ़ेस

Tradefed में नया नतीजा रिपोर्टर तय करने के लिए, किसी क्लास को ITestInvocationListener इंटरफ़ेस लागू करना होगा. इससे, कॉल करने के अलग-अलग चरणों को पाने और मैनेज करने में मदद मिलती है:

  • invocationStarted
  • invocationEnded
  • invocationFailed

नतीजे रिपोर्ट करने वाले टूल, हर टेस्ट रन के अलग-अलग चरणों को भी मैनेज करते हैं:

  • testRunStarted
  • testStarted
  • testFailed या testIgnored
  • testEnded
  • testRunFailed
  • testRunEnded

इन सभी इवेंट के आधार पर, नतीजों की रिपोर्ट करने वाले दो मुख्य टाइप होते हैं:

  • सिर्फ़ आखिरी नतीजों की रिपोर्टिंग पर ध्यान दें.
  • कुछ नतीजों पर कार्रवाई करना.

नतीजे की जानकारी देने वाला टूल, जो पूरी तरह से तैयार किए गए नतीजों की जानकारी देता है

नतीजे पाने वाली किसी बाहरी सेवा के साथ इंटरैक्ट करने के मामले में, यह सबसे सामान्य मामला होता है. रिपोर्टर को नतीजे मिलते हैं और वह उन्हें इकट्ठा करता है. इसके बाद, वह सभी नतीजों को invocationEnded पर नतीजों के एंडपॉइंट पर भेजता है.

हमारा सुझाव है कि रिपोर्टर, बेस इंटरफ़ेस के बजाय CollectingTestListener का इस्तेमाल करें. इससे, invocationEnded तक नतीजों को सेव और स्टोर करने की प्रोसेस को फिर से लागू करने से बचा जा सकता है.

नतीजों की रिपोर्ट करने वाला टूल, जो कुछ नतीजे दिखाता है

आम तौर पर, इस टाइप का इस्तेमाल नतीजों को स्ट्रीम करने के लिए किया जाता है. ऐसा तब किया जाता है, जब नतीजे मिलते ही उन्हें किसी दूसरी जगह पर भेज दिया जाता है. उदाहरण के लिए, कंसोल में नतीजे लॉग करने वाला रिपोर्टर इस टाइप का होगा.

यह टाइप, इवेंट पर किस तरह की हैंडलिंग की ज़रूरत है, इस बात पर निर्भर करता है. इसलिए, आम तौर पर बेस इंटरफ़ेस लागू करने का सुझाव दिया जाता है.

एक्सएमएल कॉन्फ़िगरेशन

ऑब्जेक्ट टैग result_reporter है. उदाहरण के लिए:

<result_reporter class="com.android.tradefed.result.ConsoleResultReporter">
    <option name="suppress-passed-tests" value="true"/>
</result_reporter>