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. مقياس_الوقت ::= \u201cأجرى\u201d عددًا صحيحًا من \u201cالاختبارات في\u201d أعداد_عشرية\u201d. الحالة ::= \u201cOK\u201d | \u201cFAILED (errors=\u201d int \u201c)\u201d. تتبع الخطأ ::= سلسلة+.

مثال على الإخراج (مقبول): 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) ... ERROR testExpectedFailure (foo.testFoo) ... expected failure testFail (foo.testFoo) ... FAIL testFailWithDocString (foo.testFoo) foo bar ... FAIL testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... skipped 'reason foo' testUnexpectedSuccess (foo.testFoo) ... unexpected success

====================================================================== خطأ: testError (foo.testFoo) ---------------------------------------------------------------------- تتبُّع الخطأ (آخر إجراء تمّ إجراؤه): الملف "foo.py"، السطر 11، في testError self.assertEqual(2+2, 5/0) ZeroDivisionError: قسمة عدد صحيح أو عدد صحيح متبقي على القسمة بصفر

.........Tailwind... FAIL: testFail (foo.testFoo) ---------------------------------------------------------------------- Traceback (أحدث استدعاء): ملف "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 ثانية

تعذّر التنفيذ (عدد حالات التعذّر=2، عدد الأخطاء=1، عدد عمليات التخطّي=1، عدد حالات التعذّر المتوقّعة=1، عدد حالات النجاح غير المتوقّعة=1)

قائمة المهام: جرّب إعادة هيكلة الفئة بالكامل، فالتعامل مع الأوضاع غير مستقرة للغاية في الوقت الحالي.

ملخّص

وظائف الإنشاء العامة

PythonUnitTestResultParser( listeners, String runName)

إنشاء PythonUnitTestResultParser جديدة ترسل تقارير إلى ITestInvocationListener المحدّدة.

PythonUnitTestResultParser( listeners, String runName, includeFilters, excludeFilters)

أنشئ PythonUnitTestResultParser جديدًا يُرسِل تقارير إلى ITestInvocationListener المحدّدة، مع فلاتر تضمين واستبعاد محدّدة.

الطرق العامة

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

تعالج بايثون مخرجات وحدة Python وتعلن عن النتائج التحليلية.

void setFinalizeWhenParsing(boolean shouldFinalize)

شركة إنشاءات عامة

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

isCancelled

public boolean isCancelled ()

المرتجعات
boolean

processNewLines

public void processNewLines (String[] lines)

معالجة نتائج اختبار Python وإعداد تقارير عن النتائج التي تم تحليلها

يجب استدعاء هذه الطريقة مرة واحدة فقط مع المُخرج الكامل، على عكس الطريقة الأساسية في MultiLineReceiver.

المعلمات
lines String

setFinalizeWhenParsing

public void setFinalizeWhenParsing (boolean shouldFinalize)

المعلمات
shouldFinalize boolean