PythonUnitTestResultParser
public
class
PythonUnitTestResultParser
extends MultiLineReceiver
java.lang.Object | ||
↳ | com.android.ddmlib.MultiLineReceiver | |
↳ | com.android.tradefed.testtype.PythonUnitTestResultParser |
Interpreta el resultado de las pruebas que se ejecutan con el framework unittest de Python y lo traduce en llamadas a una serie de ITestInvocationListener
. El resultado de estas pruebas sigue esta gramática EBNF:
TestReport ::= TestResult* Line TimeMetric [FailMessage*] Status. TestResult ::= string \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d SingleStatus. FailMessage ::= EqLine \u201cERROR:\u201d cadena \u201c(\u201ccadena\u201d)\u201d Línea de seguimiento de línea. SingleStatus ::= \u201cok\u201d | \u201cERROR\u201d. TimeMetric ::= \u201cRan\u201d integer \u201ctests in\u201d float \u201ds\u201d. Estado ::= \u201cOK\u201d | \u201cFAILED (errors=\u201d int \u201c)\u201d. traceback ::= cadena+.
Resultado de ejemplo (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 (error) 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)
Ejemplo de salida con varios casos extremos (errores): testError (foo.testFoo) … ERROR testExpectedFailure (foo.testFoo) … error esperado testFail (foo.testFoo) … ERROR testFailWithDocString (foo.testFoo) foo bar … ERROR testOk (foo.testFoo) … ok testOkWithDocString (foo.testFoo) foo bar … ok testSkipped (foo.testFoo) … omitido “reason foo” testUnexpectedSuccess (foo.testFoo) … éxito inesperado
====================================================================== 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
---------------------------------------------------------------------- Se ejecutaron 8 pruebas en 0.001 s
FAILED (failures=2, errors=1, skipped=1, expected failures=1, unexpected successes=1)
TODO: Considera refactorizar la clase completa, el control es bastante desordenado en este momento.
Resumen
Constructores públicos | |
---|---|
PythonUnitTestResultParser(
Crea un |
|
PythonUnitTestResultParser(
Crea un |
Métodos públicos | |
---|---|
void
|
finalizeParser()
|
boolean
|
isCancelled()
|
void
|
processNewLines(String[] lines)
Procesa el resultado de Python unittest y, luego, informa los resultados analizados. |
void
|
setFinalizeWhenParsing(boolean shouldFinalize)
|
Constructores públicos
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName)
Crea un PythonUnitTestResultParser
nuevo que informe a los ITestInvocationListener
dados.
Parámetros | |
---|---|
listeners |
|
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName, includeFilters, excludeFilters)
Crea un PythonUnitTestResultParser
nuevo que informe a los ITestInvocationListener
dados, 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 Python unittest y, luego, informa los resultados analizados.
Se debe llamar a este método solo una vez con el resultado completo, a diferencia del método base en MultiLineReceiver
.
Parámetros | |
---|---|
lines |
String |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
Parámetros | |
---|---|
shouldFinalize |
boolean |