PythonUnitTestResultParser
public
class
PythonUnitTestResultParser
extends MultiLineReceiver
| java.lang.Object | ||
| ↳ | com.android.ddmlib.MultiLineReceiver | |
| ↳ | com.android.tradefed.testtype.PythonUnitTestResultParser | |
Interpreta l'output dei test eseguiti con il framework unittest di Python e lo traduce in chiamate
a una serie di ITestInvocationListener. L'output di questi test segue questa grammatica 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. TimeMetric ::= \u201cRan\u201d integer \u201ctests in\u201d float \u201ds\u201d. Status ::= \u201cOK\u201d | \u201cFAILED (errors=\u201d int \u201c)\u201d. Traceback ::= string+.
Esempio di output (superamento): 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
Esempio di output (non superato): 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)
Esempio di output con diversi casi limite (non superato): 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: Consider refactoring the full class, handling is quite messy right now.
Riepilogo
Costruttori pubblici | |
|---|---|
PythonUnitTestResultParser(ITestInvocationListener listener, String runName)
Crea un nuovo |
|
PythonUnitTestResultParser(Collection<ITestInvocationListener> listeners, String runName)
Crea un nuovo |
|
PythonUnitTestResultParser(Collection<ITestInvocationListener> listeners, String runName, Set<String> includeFilters, Set<String> excludeFilters)
Crea un nuovo |
|
Metodi pubblici | |
|---|---|
void
|
finalizeParser()
|
boolean
|
isCancelled()
|
void
|
processNewLines(String[] lines)
Elabora l'output di unittest di Python e segnala i risultati analizzati. |
void
|
setFinalizeWhenParsing(boolean shouldFinalize)
|
Costruttori pubblici
PythonUnitTestResultParser
public PythonUnitTestResultParser (ITestInvocationListener listener, String runName)
Crea un nuovo PythonUnitTestResultParser che genera report per il ITestInvocationListener specificato.
| Parametri | |
|---|---|
listener |
ITestInvocationListener |
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (Collection<ITestInvocationListener> listeners, String runName)
Crea un nuovo PythonUnitTestResultParser che genera report per i ITestInvocationListener specificati.
| Parametri | |
|---|---|
listeners |
Collection |
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (Collection<ITestInvocationListener> listeners, String runName, Set<String> includeFilters, Set<String> excludeFilters)
Crea un nuovo PythonUnitTestResultParser che genera report per i ITestInvocationListener specificati, con filtri di inclusione ed esclusione.
| Parametri | |
|---|---|
listeners |
Collection |
runName |
String |
includeFilters |
Set |
excludeFilters |
Set |
Metodi pubblici
finalizeParser
public void finalizeParser ()
isCancelled
public boolean isCancelled ()
| Resi | |
|---|---|
boolean |
|
processNewLines
public void processNewLines (String[] lines)
Elabora l'output di unittest di Python e segnala i risultati analizzati.
Questo metodo deve essere chiamato una sola volta con l'output completo, a differenza del metodo di base in
MultiLineReceiver.
| Parametri | |
|---|---|
lines |
String: l'array contenente le nuove righe. |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
| Parametri | |
|---|---|
shouldFinalize |
boolean |