PythonUnitTestResultParser

public class PythonUnitTestResultParser
extends MultiLineReceiver

java.lang.Object
com.android.ddmlib.MultiLineReceiver
     ↳ com.android.tradefed.testtype.PythonUnitTestresultsParser


यह Python के unittest फ़्रेमवर्क की मदद से चलाए गए टेस्ट के आउटपुट को समझता है और उसे ITestInvocationListener की सीरीज़ पर कॉल में बदल देता है. इन टेस्ट का आउटपुट, इस ईबीएनएफ़ grammar का पालन करता है:

TestReport ::= TestResult* Line TimeMetric [FailMessage*] Status. टेस्ट के नतीजे ::= स्ट्रिंग \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d SingleStatus. FailMessage ::= EqLine \u201cERROR:\u201d string \u201c(\u201cstring\u201d)\u201d Line Traceback Line. सिंगलस्टेटस ::= \u201cok\u201d | \u201cगड़बड़ी\u201d. TimeMetric ::= \u201cRan\u201d integer \u201ctests in\u201d float \u201ds\u201d. स्टेटस ::= \u201cOK\u201d | \u201cFAILED (errors=\u201d int \u201c)\u201d. ट्रेसबैक ::= string+.

आउटपुट का उदाहरण (पास): test_size (test_rangelib.RangeSetTest) ... ok test_str (test_rangelib.RangeSetTest) ... ok test_subtract (test_rangelib.RangeSetTest) ... ok test_to_string_raw (test_rangelib.RangeSetTest) ... ok test_union (test_rangelib.RangeSetTest) ... ok

---------------------------------------------------------------------- 0.002 सेकंड में पांच टेस्ट चलाए गए

ठीक है

उदाहरण के तौर पर, आउटपुट (फ़ेल) test_size (test_rangelib.RangeSetTest) ... गड़बड़ी

**************** गड़बड़ी: test_size (test_rangelib.RangeSetTest) --------------#rangelib.RangeSetTest) ------------------------------------------------------------------------------ Traceback (सबसे हाल का कॉल अंतिम): फ़ाइल "test_rangelib.py", Line 129, test_rangelibपक्का ValueError() ValueError -------------------------------------------------------------------------------- 0.001 में 1 जांच हुई) (गड़बड़ियां=1)

कई एज केस (फ़ेल) के साथ आउटपुट का उदाहरण: testError (foo.testFoo) ... गड़बड़ी testExpectedFailure (foo.testFoo) ... उम्मीद के मुताबिक गड़बड़ी testFail (foo.testFoo) ... फ़ेल testFailWithDocString (foo.testFoo) foo bar ... फ़ेल testOk (foo.testFoo) ... ठीक है testOkWithDocString (foo.testFoo) foo bar ... ठीक है testSkipped (foo.testFoo) ... छोड़ा गया 'वजह foo' testUnexpectedSuccess (foo.testFoo) ... अचानक सफलता

फ़ फ़ीड **** गड़बड़ी: गड़बड़ी: testError (foo.testFoo) ------------------------------------------------------------------------------ ट्रेसबैक (सबसे हाल का कॉल आखिरी): फ़ाइल "foo.py", Line 11, in testError Self.osertEqual(2+2, 5/0) ZeroDivisionError: पूर्णांक डिवीज़न या मॉड्यूलो बाय ज़ीरो

====================================================================== FAIL: testFail (foo.testFoo) ---------------------------------------------------------------------- Traceback (most recent call last): File "foo.py", line 8, in testFail self.assertEqual(2+2, 5) AssertionError: 4 != 5

====================================================================== FAIL: testFailWithDocString (foo.testFoo) foo bar ---------------------------------------------------------------------- Traceback (most recent call last): File "foo.py", line 31, in testFailWithDocString self.assertEqual(2+2, 5) AssertionError: 4 != 5

---------------------------------------------------------------------- 0.001 सेकंड में 8 टेस्ट चलाए गए

पूरा नहीं हुआ (पूरा नहीं हो सकने वाली टेस्ट की संख्या=2, गड़बड़ियां=1, स्किप की गई टेस्ट की संख्या=1, पूरी हो सकने वाली टेस्ट की संख्या=1, अचानक पूरी हो गई टेस्ट की संख्या=1)

TODO: पूरी क्लास को फिर से तैयार करें. फ़िलहाल, इसे मैनेज करना काफ़ी मुश्किल है.

खास जानकारी

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

PythonUnitTestResultParser( listeners, String runName)

एक नया PythonUnitTestResultParser बनाएं, जो दिए गए ITestInvocationListener को रिपोर्ट करता हो.

PythonUnitTestResultParser( listeners, String runName, includeFilters, excludeFilters)

एक नया PythonUnitTestResultParser बनाएं, जो दिए गए ITestInvocationListener को रिपोर्ट करता हो. साथ ही, इसमें 'शामिल करें' और 'बाहर रखें' फ़िल्टर भी शामिल हों.

सार्वजनिक तरीके

void finalizeParser()
boolean isCancelled()
void processNewLines(String[] lines)

Python unittest के आउटपुट को प्रोसेस करें और पार्स किए गए नतीजों की रिपोर्ट बनाएं.

void setFinalizeWhenParsing(boolean shouldFinalize)

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

PythonUnitTestresultsParser

public PythonUnitTestResultParser ( listeners, 
                String runName)

एक नया PythonUnitTestResultParser बनाएं, जो दिए गए ITestInvocationListener को रिपोर्ट करता हो.

पैरामीटर
listeners

runName String

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName, 
                 includeFilters, 
                 excludeFilters)

एक नया PythonUnitTestResultParser बनाएं, जो दिए गए ITestInvocationListener को रिपोर्ट करता हो. साथ ही, इसमें 'शामिल करें' और 'बाहर रखें' फ़िल्टर भी शामिल हों.

पैरामीटर
listeners

runName String

includeFilters

excludeFilters

सार्वजनिक तरीके

FinalizeParser

public void finalizeParser ()

isCancelled

public boolean isCancelled ()

रिटर्न
boolean

processNewLines

public void processNewLines (String[] lines)

Python unittest के आउटपुट को प्रोसेस करें और पार्स किए गए नतीजों की रिपोर्ट बनाएं.

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

पैरामीटर
lines String

setFinalizeWhenParsing

public void setFinalizeWhenParsing (boolean shouldFinalize)

पैरामीटर
shouldFinalize boolean