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(
יוצרים |
|
PythonUnitTestResultParser(
יוצרים |
שיטות ציבוריות | |
---|---|
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 |