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(
Buat |
|
PythonUnitTestResultParser(
Buat |
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 |