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*] Status. TestResult ::= string \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d SingleStatus. FailMessage ::= EqLine \u201cERROR:\u201d string \u201c(\u201cstring\u201d)\u201d Line Traceback Line. SingleStatus ::= \u201cok\u201d | \u201cERROR\u201d. TimeMetric ::= \u201cRan\u201d integer \u201ctests in\u201d float \u201ds\u201d. Status ::= \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) ... ok test_to_string_raw (test_rangelib.RangeSetTest) ... ok test_union (test_rangelib.RangeSetTest) ... ok
---------------------------------------------------------------------- בוצעו 5 בדיקות ב-0.002 שניות
אישור
פלט לדוגמה (נכשל) test_size (test_rangelib.RangeSetTest) ... שגיאה
====================================================================== שגיאה: test_size (test_rangelib.RangeSetTest) ---------------------------------------------------------------------- נתיב חזרה (הקריאה האחרונה היא האחרונה): קובץ "test_rangelib.py", שורה 129, ב-test_rangelib raise ValueError() ValueError ---------------------------------------------------------------------- הרצתי בדיקה אחת ב-0.001 שניות נכשל (שגיאות=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) ... דילוג על 'reason foo' testUnexpectedSuccess (foo.testFoo) ... הצלחה בלתי צפויה
====================================================================== שגיאה: testError (foo.testFoo) ---------------------------------------------------------------------- נתיב חזרה (הקריאה האחרונה מופיעה אחרונה): קובץ "foo.py", שורה 11, ב-testError self.assertEqual(2+2, 5/0) ZeroDivisionError: חלוקת מספר שלם או מודולו ב-0
====================================================================== נכשל: testFail (foo.testFoo) ---------------------------------------------------------------------- נתיב חזרה (הקריאה האחרונה מופיעה אחרונה): קובץ "foo.py", שורה 8, ב-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
---------------------------------------------------------------------- בוצעו 8 בדיקות ב-0.001 שניות
FAILED (failures=2, errors=1, skipped=1, expected failures=1, unexpected successes=1)
TODO: כדאי לשקול לבצע רפאקציה של הכיתה המלאה, הטיפול כרגע די מבולגן.
סיכום
יוצרים ציבוריים | |
---|---|
PythonUnitTestResultParser(
יוצרים |
|
PythonUnitTestResultParser(
יוצרים |
שיטות ציבוריות | |
---|---|
void
|
finalizeParser()
|
boolean
|
isCancelled()
|
void
|
processNewLines(String[] lines)
עיבוד פלט של בדיקת unittest ב-Python ודיווח על תוצאות הניתוח. |
void
|
setFinalizeWhenParsing(boolean shouldFinalize)
|
יוצרים ציבוריים
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName)
יוצרים PythonUnitTestResultParser
חדש שמדווח ל-ITestInvocationListener
s הנתונים.
פרמטרים | |
---|---|
listeners |
|
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName, includeFilters, excludeFilters)
יוצרים PythonUnitTestResultParser
חדש שמדווח ל-ITestInvocationListener
s שצוינו, עם מסנני הכללה והחרגה שצוינו.
פרמטרים | |
---|---|
listeners |
|
runName |
String |
includeFilters |
|
excludeFilters |
|
שיטות ציבוריות
finalizeParser
public void finalizeParser ()
isCancelled
public boolean isCancelled ()
החזרות | |
---|---|
boolean |
processNewLines
public void processNewLines (String[] lines)
עיבוד פלט של בדיקת unittest ב-Python ודיווח על התוצאות המנותחות.
צריך לקרוא לשיטה הזו רק פעם אחת עם הפלט המלא, בניגוד לשיטת הבסיס ב-MultiLineReceiver
.
פרמטרים | |
---|---|
lines |
String |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
פרמטרים | |
---|---|
shouldFinalize |
boolean |