PythonUnitTestResultParser
public
class
PythonUnitTestResultParser
extends MultiLineReceiver
| java.lang.Object | ||
| ↳ | com.android.ddmlib.MultiLineReceiver | |
| ↳ | com.android.tradefed.testtype.PythonUnitTestResultParser | |
Menginterpretasikan output pengujian yang dijalankan dengan framework unittest Python dan menerjemahkannya ke dalam panggilan
pada serangkaian ITestInvocationListeners. 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
OK
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
====================================================================== FAIL: testFail (foo.testFoo) ---------------------------------------------------------------------- Traceback (most recent call last): File "foo.py", line 8, in 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
---------------------------------------------------------------------- Ran 8 tests in 0.001s
FAILED (failures=2, errors=1, skipped=1, expected failures=1, unexpected successes=1)
TODO: Pertimbangkan untuk memfaktorkan ulang seluruh class, penanganannya cukup berantakan saat ini.
Ringkasan
Konstruktor publik | |
|---|---|
PythonUnitTestResultParser(ITestInvocationListener listener, String runName)
Membuat |
|
PythonUnitTestResultParser(Collection<ITestInvocationListener> listeners, String runName)
Membuat |
|
PythonUnitTestResultParser(Collection<ITestInvocationListener> listeners, String runName, Set<String> includeFilters, Set<String> excludeFilters)
Membuat |
|
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 (ITestInvocationListener listener, String runName)
Membuat PythonUnitTestResultParser baru yang melaporkan ke ITestInvocationListener yang diberikan.
| Parameter | |
|---|---|
listener |
ITestInvocationListener |
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (Collection<ITestInvocationListener> listeners, String runName)
Membuat PythonUnitTestResultParser baru yang melaporkan ke ITestInvocationListener yang diberikan.
| Parameter | |
|---|---|
listeners |
Collection |
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (Collection<ITestInvocationListener> listeners, String runName, Set<String> includeFilters, Set<String> excludeFilters)
Membuat PythonUnitTestResultParser baru yang melaporkan ke ITestInvocationListener yang diberikan, dengan filter sertakan dan kecualikan yang ditentukan.
| Parameter | |
|---|---|
listeners |
Collection |
runName |
String |
includeFilters |
Set |
excludeFilters |
Set |
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: Array yang berisi baris baru. |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
| Parameter | |
|---|---|
shouldFinalize |
boolean |