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

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

कोर इंटरफ़ेस

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>