BugreportCollector

public class BugreportCollector
extends Object implements ITestInvocationListener

java.lang.Object
   ↳ com.android.tradefed.result.BugreportCollector


यह एक पास-थ्रू ITestInvocationListener है. यह कॉन्फ़िगर किए जा सकने वाले इवेंट होने पर, गड़बड़ी की रिपोर्ट इकट्ठा करता है. इसके बाद, गड़बड़ी की हर रिपोर्ट इकट्ठा होने के बाद, यह अपने चाइल्ड पर ITestInvocationListener.testLog को कॉल करता है.

बर्ताव: (FIXME: finish this)

  • अगर कोई टेस्ट केस फ़ेल हो जाता है, तो हर टेस्ट केस के बाद कैप्चर करें
  • हर टेस्ट केस के बाद कैप्चर करें
  • हर टेस्ट केस के फ़ेल होने के बाद कैप्चर करें
  • कैप्चर करें

खास जानकारी

नेस्टेड क्लास

class BugreportCollector.Predicate

पूरा प्रेडिकेट, जिसमें यह बताया गया हो कि बग रिपोर्ट कब कैप्चर करनी है. 

interface BugreportCollector.SubPredicate

 

फ़ील्ड

public static final BugreportCollector.Predicate AFTER_FAILED_TESTCASES

पहले से तय किया गया ऐसा प्रेडिकेट जो जांच के हर मामले के फ़ेल होने के बाद ट्रिगर होता है

public static final BugreportCollector.Predicate AT_START

पहले से तय किया गया प्रेडिकेट, जो पहले इनवोकेशन के शुरू होते ही ट्रिगर हो जाता है

सार्वजनिक कंस्ट्रक्टर

BugreportCollector(ITestInvocationListener listener, ITestDevice testDevice)

पब्लिक मेथड

void addPredicate(BugreportCollector.Predicate p)
void blockUntilIdle()

जब तक कलेक्टर गड़बड़ी की कोई रिपोर्ट इकट्ठा नहीं कर रहा है, तब तक ब्लॉक करें.

TestSummary getSummary()

इस अनुमति से, InvocationListener को खास जानकारी दिखाने की सुविधा मिलती है.

void invocationEnded(long elapsedTime)

यह रिपोर्ट करती है कि इनवॉकेशन खत्म हो गया है. भले ही, यह काम सही तरीके से हुआ हो या किसी गड़बड़ी की वजह से.

void invocationFailed(Throwable cause)

किसी गड़बड़ी की वजह से, यह कुकी इनवोकेशन पूरा न होने की सूचना देती है.

void invocationStarted(IInvocationContext context)

यह कुकी, टेस्ट शुरू होने की जानकारी देती है.

void setAsynchronous(boolean asynchronous)

सेट करें कि गड़बड़ी की रिपोर्ट इकट्ठा करने के दौरान, गड़बड़ी की रिपोर्ट को किसी दूसरे थ्रेड में इकट्ठा किया जाना चाहिए (asynchronous = true) या जब तक गड़बड़ी की रिपोर्ट कैप्चर नहीं हो जाती, तब तक कॉलर को ब्लॉक किया जाना चाहिए (asynchronous = false).

void setDescriptiveName(String name)

बग रिपोर्ट रिकॉर्ड करते समय इस्तेमाल करने के लिए, जानकारी देने वाला नाम सेट करें.

void setDeviceWaitTime(int waitTime)

यह विकल्प, उस समय को सेकंड में सेट करता है जब डिवाइस के ऑनलाइन होने का इंतज़ार किया जाता है. इसके बाद, हम बग रिपोर्ट कैप्चर करने की कोशिश करते हैं.

void testAssumptionFailure(TestDescription test, String trace)

इस फ़ंक्शन को तब कॉल किया जाता है, जब कोई ऐटॉमिक टेस्ट यह फ़्लैग करता है कि वह ऐसी शर्त मान रहा है जो गलत है

void testEnded(TestDescription test, HashMap<String, MetricMeasurement.Metric> testMetrics)

यह कुकी, किसी टेस्ट केस के खत्म होने की जानकारी देती है.

void testFailed(TestDescription test, String trace)

यह किसी टेस्ट केस के फ़ेल होने की जानकारी देता है.

void testIgnored(TestDescription test)

इस फ़ंक्शन को तब कॉल किया जाता है, जब कोई टेस्ट नहीं चलाया जाता. आम तौर पर, ऐसा इसलिए होता है, क्योंकि टेस्ट के तरीके को org.junit.Ignore के साथ एनोटेट किया जाता है.

void testLog(String dataName, LogDataType dataType, InputStreamSource dataStream)

यह टेस्ट शुरू करने से जुड़ा लॉग या डीबग डेटा उपलब्ध कराता है.

void testRunEnded(long elapsedTime, HashMap<String, MetricMeasurement.Metric> runMetrics)

यह कुकी, टेस्ट रन के खत्म होने की जानकारी देती है.

void testRunFailed(String errorMessage)

गंभीर गड़बड़ी की वजह से, रिपोर्ट के टेस्ट रन को पूरा नहीं किया जा सका.

void testRunStarted(String runName, int testCount)

यह कुकी, टेस्ट रन शुरू होने की जानकारी देती है.

void testRunStopped(long elapsedTime)

उपयोगकर्ता के अनुरोध की वजह से, रिपोर्ट के टेस्ट रन को पूरा होने से पहले ही रोक दिया गया.

void testStarted(TestDescription test)

यह फ़ंक्शन, किसी टेस्ट केस के शुरू होने की जानकारी देता है.

फ़ील्ड

AFTER_FAILED_TESTCASES

public static final BugreportCollector.Predicate AFTER_FAILED_TESTCASES

पहले से तय किया गया ऐसा प्रेडिकेट जो जांच के हर मामले के फ़ेल होने के बाद ट्रिगर होता है

AT_START

public static final BugreportCollector.Predicate AT_START

पहले से तय किया गया प्रेडिकेट, जो पहले इनवोकेशन के शुरू होते ही ट्रिगर हो जाता है

सार्वजनिक कंस्ट्रक्टर

BugreportCollector

public BugreportCollector (ITestInvocationListener listener, 
                ITestDevice testDevice)

पैरामीटर
listener ITestInvocationListener

testDevice ITestDevice

पब्लिक मेथड

addPredicate

public void addPredicate (BugreportCollector.Predicate p)

पैरामीटर
p BugreportCollector.Predicate

blockUntilIdle

public void blockUntilIdle ()

जब तक कलेक्टर कोई गड़बड़ी की रिपोर्ट इकट्ठा नहीं कर रहा है, तब तक ब्लॉक करें. अगर कलेक्टर, गड़बड़ी की रिपोर्ट इकट्ठा नहीं कर रहा है, तो तुरंत वापस आएं

getSummary

public TestSummary getSummary ()

इस अनुमति से, InvocationListener को खास जानकारी दिखाने की सुविधा मिलती है.

रिटर्न
TestSummary दौड़ के बारे में जानकारी देने वाला TestSummary या शून्य

invocationEnded

public void invocationEnded (long elapsedTime)

यह रिपोर्ट करती है कि इनवॉकेशन खत्म हो गया है. भले ही, यह काम सही तरीके से हुआ हो या किसी गड़बड़ी की वजह से.

इसे TradeFederation फ़्रेमवर्क अपने-आप कॉल करेगा.

पैरामीटर
elapsedTime long: फ़ंक्शन को कॉल करने में लगा समय, मिलीसेकंड में

invocationFailed

public void invocationFailed (Throwable cause)

किसी गड़बड़ी की वजह से, यह कुकी इनवोकेशन पूरा न होने की सूचना देती है.

इसे TradeFederation फ़्रेमवर्क अपने-आप कॉल करेगा.

पैरामीटर
cause Throwable: Throwable की वजह से टेस्ट पूरा नहीं हो सका

invocationStarted

public void invocationStarted (IInvocationContext context)

यह कुकी, टेस्ट शुरू होने की जानकारी देती है.

इसे TradeFederation फ़्रेमवर्क अपने-आप कॉल करेगा. रिपोर्टर को इस तरीके को बदलना होगा, ताकि एक से ज़्यादा डिवाइसों से रिपोर्टिंग की जा सके.

पैरामीटर
context IInvocationContext: शुरू करने के बारे में जानकारी

setAsynchronous

public void setAsynchronous (boolean asynchronous)

सेट करें कि गड़बड़ी की रिपोर्ट इकट्ठा करने के दौरान, गड़बड़ी की रिपोर्ट को किसी दूसरे थ्रेड में इकट्ठा किया जाना चाहिए (asynchronous = true) या जब तक गड़बड़ी की रिपोर्ट कैप्चर नहीं हो जाती, तब तक कॉलर को ब्लॉक किया जाना चाहिए (asynchronous = false).

पैरामीटर
asynchronous boolean

setDescriptiveName

public void setDescriptiveName (String name)

बग रिपोर्ट रिकॉर्ड करते समय इस्तेमाल करने के लिए, जानकारी देने वाला नाम सेट करें. अगर null, BugreportCollector, तो उस इवेंट का नाम क्रम से लगाने के डिफ़ॉल्ट तरीके पर वापस आ जाएगा जिसकी वजह से bugreport इकट्ठा किया गया था.

पैरामीटर
name String

setDeviceWaitTime

public void setDeviceWaitTime (int waitTime)

यह विकल्प, उस समय को सेकंड में सेट करता है जब डिवाइस के ऑनलाइन होने का इंतज़ार किया जाता है. इसके बाद, हम बग रिपोर्ट कैप्चर करने की कोशिश करते हैं. अगर यह वैल्यू नेगेटिव है, तो कोई जांच नहीं की जाएगी. इस जांच के दौरान मिले किसी भी DeviceNotAvailableException को लॉग किया जाएगा और अनदेखा कर दिया जाएगा.

पैरामीटर
waitTime int

testAssumptionFailure

public void testAssumptionFailure (TestDescription test, 
                String trace)

इस फ़ंक्शन को तब कॉल किया जाता है, जब कोई ऐटॉमिक टेस्ट यह फ़्लैग करता है कि वह ऐसी शर्त मान रहा है जो गलत है

पैरामीटर
test TestDescription: इससे टेस्ट की पहचान होती है

trace String: गड़बड़ी का स्टैक ट्रेस

testEnded

public void testEnded (TestDescription test, 
                HashMap<String, MetricMeasurement.Metric> testMetrics)

यह कुकी, किसी टेस्ट केस के खत्म होने की जानकारी देती है.

अगर testFailed(TestDescription, FailureDescription) को लागू नहीं किया गया है, तो यह टेस्ट पास हो गया है. यह टेस्ट केस के एक्ज़ीक्यूशन के दौरान, जनरेट हुई किसी भी कुंजी/वैल्यू मेट्रिक को भी दिखाता है.

पैरामीटर
test TestDescription: इससे टेस्ट की पहचान होती है

testMetrics HashMap: भेजी गई मेट्रिक का Map

testFailed

public void testFailed (TestDescription test, 
                String trace)

यह किसी टेस्ट केस के फ़ेल होने की जानकारी देता है.

इसे testStarted और testEnded के बीच कॉल किया जाएगा.

पैरामीटर
test TestDescription: इससे टेस्ट की पहचान होती है

trace String: गड़बड़ी का स्टैक ट्रेस

testIgnored

public void testIgnored (TestDescription test)

इस फ़ंक्शन को तब कॉल किया जाता है, जब कोई टेस्ट नहीं चलाया जाता. आम तौर पर, ऐसा इसलिए होता है, क्योंकि टेस्ट के तरीके को org.junit.Ignore के साथ एनोटेट किया जाता है.

पैरामीटर
test TestDescription: इससे टेस्ट की पहचान होती है

testLog

public void testLog (String dataName, 
                LogDataType dataType, 
                InputStreamSource dataStream)

यह टेस्ट शुरू करने से जुड़ा लॉग या डीबग डेटा उपलब्ध कराता है.

इसे ERROR(ITestInvocationListener.invocationFailed(Throwable)/ITestInvocationListener#invocationFailed(java.lang.Throwable) ITestInvocationListener.invocationFailed(Throwable)) या ERROR(/ITestInvocationListener#invocationEnded(long)) से पहले कॉल किया जाना चाहिए

TradeFederation फ़्रेमवर्क इस तरीके को अपने-आप कॉल करेगा. इसमें होस्ट लॉग और अगर लागू हो, तो डिवाइस लॉगकैट शामिल होगा.

पैरामीटर
dataName String: डेटा का String जानकारी देने वाला नाम. उदाहरण के लिए, "device_logcat". ध्यान दें dataName, हर इनवोकेशन के लिए यूनीक नहीं हो सकता. इसका मतलब है कि लागू करने वालों को एक ही dataName के साथ कई कॉल मैनेज करने में सक्षम होना चाहिए

dataType LogDataType: डेटा का LogDataType

dataStream InputStreamSource: डेटा का InputStreamSource. डेटा को पढ़ना शुरू करने के लिए, लागू करने वालों को createInputStream को कॉल करना चाहिए. साथ ही, यह पक्का करना चाहिए कि जब डेटा पढ़ना पूरा हो जाए, तब InputStream को बंद कर दिया जाए. कॉल करने वालों को यह पक्का करना चाहिए कि डेटा का सोर्स, testLog तरीके के पूरा होने तक मौजूद रहे और उसे ऐक्सेस किया जा सके.

testRunEnded

public void testRunEnded (long elapsedTime, 
                HashMap<String, MetricMeasurement.Metric> runMetrics)

यह कुकी, टेस्ट रन के खत्म होने की जानकारी देती है. FIXME: We cannot have two Map<> interfaces with different type, so we have to use HashMap here.

पैरामीटर
elapsedTime long: डिवाइस ने मिलीसेकंड में बीता हुआ समय रिपोर्ट किया

runMetrics HashMap: Metric के साथ टेस्ट रन के आखिर में रिपोर्ट किए गए की-वैल्यू पेयर.

testRunFailed

public void testRunFailed (String errorMessage)

गंभीर गड़बड़ी की वजह से, रिपोर्ट के टेस्ट रन को पूरा नहीं किया जा सका.

पैरामीटर
errorMessage String: String, रन फ़ेल होने की वजह के बारे में बताता है.

testRunStarted

public void testRunStarted (String runName, 
                int testCount)

यह कुकी, टेस्ट रन शुरू होने की जानकारी देती है.

पैरामीटर
runName String: टेस्ट रन का नाम

testCount int: टेस्ट रन में कुल टेस्ट की संख्या

testRunStopped

public void testRunStopped (long elapsedTime)

उपयोगकर्ता के अनुरोध की वजह से, रिपोर्ट के टेस्ट रन को पूरा होने से पहले ही रोक दिया गया.

TODO: currently unused, consider removing

पैरामीटर
elapsedTime long: डिवाइस ने मिलीसेकंड में बीता हुआ समय रिपोर्ट किया

testStarted

public void testStarted (TestDescription test)

यह फ़ंक्शन, किसी टेस्ट केस के शुरू होने की जानकारी देता है. पुराना इंटरफ़ेस. जब भी हो सके, testStarted(TestDescription) का इस्तेमाल करना चाहिए.

पैरामीटर
test TestDescription: इससे टेस्ट की पहचान होती है