PythonUnitTestResultParser

public class PythonUnitTestResultParser
extends MultiLineReceiver

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


Menafsirkan output pengujian yang dijalankan dengan framework unittest Python dan menerjemahkannya menjadi panggilan pada serangkaian ITestInvocationListener. Output dari pengujian ini mengikuti tata bahasa EBNF berikut:

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+.

Contoh output (lulus): 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

---------------------------------------------------------------------- Ran 5 tests in 0.002s

Oke

Contoh output (gagal) test_size (test_rangelib.RangeSetTest) ... ERROR

====================================================================== ERROR: test_size (test_rangelib.RangeSetTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_rangelib.py", line 129, in test_rangelib raise ValueError() ValueError ---------------------------------------------------------------------- Ran 1 test in 0.001s FAILED (errors=1)

Contoh output dengan beberapa kasus ekstrem (gagal): 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

====================================================================== ERROR: testError (foo.testFoo) ---------------------------------------------------------------------- Traceback (most recent call last): File "foo.py", line 11, in testError self.assertEqual(2+2, 5/0) ZeroDivisionError: integer division or modulo by zero

====================================================================== GAGAL: testFail (foo.testFoo) ---------------------------------------------------------------------- Traceback (panggilan terakhir): File "foo.py", baris 8, di testFail self.assertEqual(2+2, 5) AssertionError: 4 != 5

====================================================================== GAGAL: testFailWithDocString (foo.testFoo) foo bar ---------------------------------------------------------------------- Traceback (panggilan terakhir): File "foo.py", baris 31, di testFailWithDocString self.assertEqual(2+2, 5) AssertionError: 4 != 5

---------------------------------------------------------------------- Ran 8 tests in 0.001s

GAGAL (kegagalan=2, error=1, dilewati=1, kegagalan yang diharapkan=1, keberhasilan yang tidak diharapkan=1)

TODO: Pertimbangkan untuk memfaktorkan ulang seluruh class, penanganannya cukup berantakan saat ini.

Ringkasan

Konstruktor publik

PythonUnitTestResultParser( listeners, String runName)

Buat PythonUnitTestResultParser baru yang melapor ke ITestInvocationListener yang diberikan.

PythonUnitTestResultParser( listeners, String runName, includeFilters, excludeFilters)

Buat PythonUnitTestResultParser baru yang melaporkan ke ITestInvocationListener tertentu, dengan filter sertakan dan kecualikan yang ditentukan.

Metode publik

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

Memproses output unittest Python dan melaporkan hasil yang di-parsing.

void setFinalizeWhenParsing(boolean shouldFinalize)

Konstruktor publik

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName)

Buat PythonUnitTestResultParser baru yang melapor ke ITestInvocationListener yang diberikan.

Parameter
listeners

runName String

PythonUnitTestResultParser

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

Buat PythonUnitTestResultParser baru yang dilaporkan ke ITestInvocationListener tertentu, dengan filter sertakan dan kecualikan yang ditentukan.

Parameter
listeners

runName String

includeFilters

excludeFilters

Metode publik

finalizeParser

public void finalizeParser ()

isCancelled

public boolean isCancelled ()

Hasil
boolean

processNewLines

public void processNewLines (String[] lines)

Memproses output unittest Python dan melaporkan hasil yang di-parsing.

Metode ini hanya boleh dipanggil sekali dengan output lengkap, tidak seperti metode dasar di MultiLineReceiver.

Parameter
lines String: Array yang berisi baris baru.

setFinalizeWhenParsing

public void setFinalizeWhenParsing (boolean shouldFinalize)

Parameter
shouldFinalize boolean