PythonUnitTestResultParser
public
class
PythonUnitTestResultParser
extends MultiLineReceiver
| java.lang.Object | ||
| ↳ | com.android.ddmlib.MultiLineReceiver | |
| ↳ | com.android.tradefed.testtype.PythonUnitTestResultParser | |
Interpreta el resultado de las pruebas ejecutadas con el framework unittest de Python y lo traduce en llamadas a una serie de ITestInvocationListeners. El resultado de estas pruebas sigue esta gramática de 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+.
Ejemplo de resultado (aprobado): 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
---------------------------------------------------------------------- Se ejecutaron 5 pruebas en 0.002 s
Aceptar
Ejemplo de resultado (con errores) test_size (test_rangelib.RangeSetTest) … ERROR
====================================================================== ERROR: test_size<0x0A> (test_rangelib.RangeSetTest)<0x0A> ---------------------------------------------------------------------- Traceback (most recent<0x0A> call last): File "test_rangelib.py", line 129, in test_rangelib raise ValueError() ValueError<0x0A> ---------------------------------------------------------------------- Ran 1 test in 0.001s<0x0A> FAILED (errors=1)
Ejemplo de salida con varios casos extremos (fallidos): 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)
PENDIENTE: Considera refactorizar la clase completa, ya que el control es bastante desordenado en este momento.
Resumen
Constructores públicos | |
|---|---|
PythonUnitTestResultParser(
Crea un nuevo |
|
PythonUnitTestResultParser(
Crea un objeto |
|
Métodos públicos | |
|---|---|
void
|
finalizeParser()
|
boolean
|
isCancelled()
|
void
|
processNewLines(String[] lines)
Procesa el resultado de unittest de Python y genera un informe con los resultados analizados. |
void
|
setFinalizeWhenParsing(boolean shouldFinalize)
|
Constructores públicos
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName)
Crea un nuevo PythonUnitTestResultParser que genere informes para los ITestInvocationListeners determinados.
| Parámetros | |
|---|---|
listeners |
|
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName, includeFilters, excludeFilters)
Crea un objeto PythonUnitTestResultParser nuevo que informa a los objetos ITestInvocationListener determinados, con los filtros de inclusión y exclusión especificados.
| Parámetros | |
|---|---|
listeners |
|
runName |
String |
includeFilters |
|
excludeFilters |
|
Métodos públicos
finalizeParser
public void finalizeParser ()
isCancelled
public boolean isCancelled ()
| Muestra | |
|---|---|
boolean |
|
processNewLines
public void processNewLines (String[] lines)
Procesa el resultado de unittest de Python y genera un informe con los resultados analizados.
Este método solo se debe llamar una vez con el resultado completo, a diferencia del método base en MultiLineReceiver.
| Parámetros | |
|---|---|
lines |
String: Es el array que contiene las líneas nuevas. |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
| Parámetros | |
|---|---|
shouldFinalize |
boolean |