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 ini:

TestReport ::= Status TestResult* Line TimeMetric [FailMessage*] 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

---------------------------------------------------------------------- Menjalankan 5 pengujian dalam 0,002 detik

Oke

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

====================================================================== ERROR: test_size (test_rangelib.RangeSetTest) ---------------------------------------------------------------------- Traceback (panggilan terbaru terakhir): File "test_rangelib.py", baris 129, di test_rangelib raise ValueError() ValueError ---------------------------------------------------------------------- Menjalankan 1 pengujian dalam 0,001 detik GAGAL (error=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 (panggilan terbaru terakhir): File "foo.py", baris 11, di testError self.assertEqual(2+2, 5/0) ZeroDivisionError: pembagian bilangan bulat atau modulo dengan nol

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

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

---------------------------------------------------------------------- Menjalankan 8 pengujian dalam 0,001 detik

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

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

Ringkasan

Konstruktor publik

PythonUnitTestResultParser( listeners, String runName)

Buat PythonUnitTestResultParser baru yang melaporkan ke ITestInvocationListener yang diberikan.

PythonUnitTestResultParser( listeners, String runName, includeFilters, excludeFilters)

Buat PythonUnitTestResultParser baru yang melaporkan ke ITestInvocationListener yang ditentukan, 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 diuraikan.

void setFinalizeWhenParsing(boolean shouldFinalize)

Konstruktor publik

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName)

Buat PythonUnitTestResultParser baru yang melaporkan ke ITestInvocationListener yang diberikan.

Parameter
listeners

runName String

PythonUnitTestResultParser

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

Buat PythonUnitTestResultParser baru yang melaporkan ke ITestInvocationListener yang ditentukan, 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 diuraikan.

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

Parameter
lines String

setFinalizeWhenParsing

public void setFinalizeWhenParsing (boolean shouldFinalize)

Parameter
shouldFinalize boolean