PythonUnitTestresultsParser

public class PythonUnitTestResultParser
extends MultiLineReceiver

JavaScript.lang.Object
com.android.ddmlib.MultiLineReceiver
  com.android.tradefed.testtype.PythonUnitTestresultsParser


פירוש פלט הבדיקות של הרצת בדיקות היחידה (unittest framework של Python) ומתרגמת אותו לקריאות בסדרה של ITestInvocationListener. הפלט מהבדיקות האלה מגיע לאחר EBNF הזה דקדוק:

TestReport ::= Testresults* Line TimeMetric [FailMessage*] סטטוס. Test result ::= string \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d SingleStatus (סטטוס יחיד). FailMessage ::= EqLine \u201cERROR:\u201d string \u201c(\u201cstring\u201d)\u201d Line Traceback קו. SingleStatus ::= \u201cok\u201d | \u201cERROR\u201d. TimeMetric ::= \u201cRan\u201d מספר שלם \u201ctests ב\u201d מספר ממשי (float) \u201ds\u201d. רמה ::= \u201cOK\u201d | \u201cFAILED (errors=\u201d int \u201c)\u201d. Traceback ::= string+.

פלט לדוגמה (עובר): test_size (test_rangelib.RangeSetTest) ... ok test_str (test_rangelib.RangeSetTest) ... ok test_subtract (test_rangelib.RangeSetTest) ... תקין test_to_string_raw (test_rangelib.RangeSetTest) ... ok test_union (test_rangelib.RangeSetTest) ... אוקיי

---------------------------------------------------------------------- ביצעתי 5 בדיקות ב-0.002 שנ'

אישור

פלט לדוגמה (נכשל) test_size (test_rangelib.RangeSetTest) ... ERROR

=============================================================== שגיאה: test_size (test_rangelib.RangeSetTest) ---------------------------------------------------------------------- Traceback (העדכני ביותר) קריאה אחרונה): קובץ "test_rangelib.py", שורה 129, ב-test_rangelib מעלים את ValueError() ------------------------------------------------------------------------ רצתה בדיקה אחת ב-0.001 שניות נכשל (errors=1)

פלט לדוגמה עם מספר מקרי קצה (נכשל): testError (foo.testFoo) ... ERROR testExpectedFailure (foo.testFoo) ... ציפית בדיקת כשל testFail (foo.testFoo) ... FAIL testFailWithDocString (foo.testFoo) foo bar ... FAIL testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... דילג על 'reason' foo' testUnexpectedSuccess (foo.testFoo) ... הצלחה לא צפויה

=============================================================== שגיאה: testError (foo.testFoo) ---------------------------------------------------------------------- Traceback (הקריאה האחרונה האחרונה): קובץ "foo.py", שורה 11, ב-testErrorself.assertEqual(2+2, 5/0) ZeroDivisionError: חלוקה של מספרים שלמים או מודולו באפס

================================================================ FAIL: testFail (foo.testFoo) ---------------------------------------------------------------------- Traceback (הקריאה האחרונה האחרונה): קובץ "foo.py", שורה 8, ב-testFail self.assertEqual(2+2, 5) AssertionError: 4 != 5

=============================================================== FAIL: testFailWithDocString (foo.testFoo) foo bar ---------------------------------------------------------------------- Traceback (העדכני ביותר) call last): קובץ "foo.py", שורה 31, in testFailWithDocString self.assertEqual(2+2, 5) AssertionError: 4 != 5

------------------------------------------------------------------------ רצנו 8 בדיקות ב-0.001 שניות

נכשל (failures=2, errors=1, דילג=1, כשלים צפויים=1, הצלחה לא צפויה=1)

TODO: כדאי לשקול מחדש את הארגון כולו, כי הטיפול כרגע די מבולגן.

סיכום

בנאים ציבוריים

PythonUnitTestResultParser(ITestInvocationListener listener, String runName)

יוצרים PythonUnitTestResultParser חדש שמדווח ל-ITestInvocationListener הנתון.

PythonUnitTestResultParser( listeners, String runName)

יוצרים PythonUnitTestResultParser חדש שידווח ל-ITestInvocationListener הנתונים.

PythonUnitTestResultParser( listeners, String runName, includeFilters, excludeFilters)

יוצרים PythonUnitTestResultParser חדש שמדווח על פונקציות ITestInvocationListener הנתונים, עם מסנני הכללה והחרגה שצוינו.

שיטות ציבוריות

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

עיבוד הפלט של בדיקת יחידה (unittest) של Python ודיווח על תוצאות שנותחו.

void setFinalizeWhenParsing(boolean shouldFinalize)

בנאים ציבוריים

PythonUnitTestresultsParser

public PythonUnitTestResultParser (ITestInvocationListener listener, 
                String runName)

יוצרים PythonUnitTestResultParser חדש שמדווח ל-ITestInvocationListener הנתון.

פרמטרים
listener ITestInvocationListener

runName String

PythonUnitTestresultsParser

public PythonUnitTestResultParser ( listeners, 
                String runName)

יוצרים PythonUnitTestResultParser חדש שידווח ל-ITestInvocationListener הנתונים.

פרמטרים
listeners

runName String

PythonUnitTestresultsParser

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

יוצרים PythonUnitTestResultParser חדש שמדווח על פונקציות ITestInvocationListener הנתונים, עם מסנני הכללה והחרגה שצוינו.

פרמטרים
listeners

runName String

includeFilters

excludeFilters

שיטות ציבוריות

FinalizeParser

public void finalizeParser ()

מבוטלת

public boolean isCancelled ()

החזרות
boolean

עיבוד שורות חדשות

public void processNewLines (String[] lines)

עיבוד הפלט של בדיקת יחידה (unittest) של Python ודיווח על תוצאות שנותחו.

יש לקרוא לשיטה הזו רק פעם אחת עם הפלט המלא, בניגוד ל-method הבסיסי ב- MultiLineReceiver

פרמטרים
lines String

setFinalizeכאשרParsing

public void setFinalizeWhenParsing (boolean shouldFinalize)

פרמטרים
shouldFinalize boolean