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

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

कोर इंटरफ़ेस

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>