PythonUnitTestResultParser

public class PythonUnitTestResultParser
extends MultiLineReceiver

java.lang.Object
com.android.ddmlib.MultiLineReceiver
com.android.tradefed.testtype.PythonUnitTestResultParser


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

TestReport ::= TestResult* Line TimeMetric [FailMessage*] סטטוס. תוצאות בדיקה ::= מחרוזת \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d סטטוס יחיד. FailMessage ::= EqLine \u201cERROR:\u201d מחרוזת \u201c(\u201cstring\u201d)\u201d קו מעקב אחר קו. סטטוס יחיד ::= \u201cok\u201d | \u201cERROR\u201d. TimeMetric ::= מספר שלם ובדיקות ב-float. סטטוס ::= \u201cOK\u201d | \u201cFAILED (שגיאות=\u201d int \u201c)\u201d. Traceback ::= מחרוזת+.

פלט לדוגמה (עובר): 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_lib. RangeSetTest) ... בסדר

-------------------------------------------------- -------------------- רץ 5 מבחנים ב-0.002 שניות

בסדר

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

================================================ ==================== שגיאה: test_size (test_rangelib.RangeSetTest) ---------------------------- ------------------------------------------------ להתחקות ( הקריאה האחרונה האחרונה): קובץ "test_rangelib.py", שורה 129, ב-test_rangelib raise ValueError() ValueError ---------------------------------- ------------------------------------------- מבחן 1 ב-0.001 שניות נכשל (שגיאות=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 testSskipped (foo.testFoo) ... דילג על 'reason foo' testUnexpectedSuccess (foo.testFoo) ... הצלחה בלתי צפויה

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

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

================================================ ==================== כשל: testFailWithDocString (foo.testFoo) foo bar -------------------- -------------------------------------------------- עקבות (השיחה האחרונה האחרונה): קובץ "foo.py", שורה 31, ב-testFailWithDocString self.assertEqual(2+2, 5) AssertionError: 4 != 5

-------------------------------------------------- -------------------- רץ 8 מבחנים ב-0.001 שניות

FAILED (כשלים=2, שגיאות=1, דילוג=1, כשלים צפויים=1, הצלחות בלתי צפויות=1)

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

סיכום

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

PythonUnitTestResultParser ( ITestInvocationListener listener, String runName)

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

PythonUnitTestResultParser ( listeners, String runName) PythonUnitTestResultParser ( listeners, String runName)

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

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

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

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

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

עבד את פלט יחידת בדיקת Python ודיווח על תוצאות מנותחות.

void setFinalizeWhenParsing (boolean shouldFinalize)

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

PythonUnitTestResultParser

public PythonUnitTestResultParser (ITestInvocationListener listener, 
                String runName)

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

פרמטרים
listener ITestInvocationListener

runName String

PythonUnitTestResultParser

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 ()

זה בוטל

public boolean isCancelled ()

החזרות
boolean

processNewLines

public void processNewLines (String[] lines)

עבד את פלט יחידת בדיקת Python ודיווח על תוצאות מנותחות.

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

פרמטרים
lines String

setFinalizeWhenParsing

public void setFinalizeWhenParsing (boolean shouldFinalize)

פרמטרים
shouldFinalize boolean