BugreportCollector

public class BugreportCollector
extends Object implements ITestInvocationListener

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


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

व्यवहार: (FIXME: इसे पूरा करें)

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

खास जानकारी

नेस्ट की गई क्लास

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, 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, 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: कॉल को शुरू करने में लगा समय, मिलीसेकंड में

शुरू करने में समस्या

public void invocationFailed (Throwable cause)

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

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

पैरामीटर
cause Throwable: गड़बड़ी की Throwable वजह

शुरू किया गया

public void invocationStarted (IInvocationContext context)

टेस्ट को शुरू करने के बारे में रिपोर्ट करता है.

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

पैरामीटर
context IInvocationContext: बोलकर निर्देश देने की सुविधा के बारे में जानकारी

सेट एसिंक्रोनस

public void setAsynchronous (boolean asynchronous)

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

पैरामीटर
asynchronous boolean

setDescriptiveName

public void setDescriptiveName (String name)

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

पैरामीटर
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, 
                 testMetrics)

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

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

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

testMetrics : उत्सर्जित की गई मेट्रिक का ERROR(/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)) या ERROR(/ITestInvocationListener#invocationEnded(long)) से पहले कॉल किया जाना चाहिए

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

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

dataType LogDataType: डेटा का LogDataType

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

testRunEnded

public void testRunEnded (long elapsedTime, 
                 runMetrics)

टेस्ट रन खत्म होने की रिपोर्ट.

पैरामीटर
elapsedTime long: डिवाइस के हिसाब से, बीत चुका समय (मिलीसेकंड में)

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

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: फ़िलहाल इस्तेमाल नहीं किया जा रहा है, इसे हटाने पर विचार करें

पैरामीटर
elapsedTime long: डिवाइस से मिलीसेकंड में, बीत चुका समय

परीक्षण प्रारंभ

public void testStarted (TestDescription test)

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

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