PythonUnitTestResultParser

public class PythonUnitTestResultParser
extends MultiLineReceiver

java.lang.Objeto
com.android.ddmlib.MultiLineReceiver
com.android.tradefed.testtype.PythonUnitTestResultParser


Interpreta el resultado de las pruebas ejecutadas con el marco unittest de Python y lo traduce en llamadas a una serie de ITestInvocationListener s. El resultado de estas pruebas sigue esta gramática EBNF:

TestReport ::= TestResult* Línea TimeMetric [FailMessage*] Estado. TestResult ::= cadena \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d SingleStatus. FailMessage ::= EqLine \u201cERROR:\u201d string \u201c(\u201cstring\u201d)\u201d Line Traceback Line. EstadoÚnico ::= \u201cok\u201d | \u201cERROR\u201d. TimeMetric ::= \u201cRan\u201d entero \u201cpruebas en\u201d float \u201ds\u201d. Estado ::= \u201cOK\u201d | \u201cFALLADO (errores=\u201d int \u201c)\u201d. Rastreo ::= cadena+.

Salida de ejemplo (aprobada): 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. Prueba de conjunto de rango)... ok

-------------------------------------------------- -------------------- Ejecuté 5 pruebas en 0.002s

DE ACUERDO

Salida de ejemplo (fallida) test_size (test_rangelib.RangeSetTest) ... ERROR

==================================================== ==================== ERROR: tamaño_prueba (test_rangelib.RangeSetTest) ---------------------- ------------------------------------------------ Rastrear ( última llamada más reciente): Archivo "test_rangelib.py", línea 129, en test_rangelib levanta ValueError() ValueError --------------------- ------------------------------------- Ejecutó 1 prueba en 0.001s FALLÓ (errores=1)

Salida de ejemplo con varios casos extremos (fallidos): testError (foo.testFoo) ... ERROR testExpectedFailure (foo.testFoo) ... fallo esperado testFail (foo.testFoo) ... FAIL testFailWithDocString (foo.testFoo) foo bar. .. FALLO testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... omitido 'razón foo' testUnexpectedSuccess (foo.testFoo) ... éxito inesperado

==================================================== ===================== ERROR: testError (foo.testFoo) ---------------------- ------------------------------------------------ Rastrear ( última llamada más reciente): Archivo "foo.py", línea 11, en testError self.assertEqual(2+2, 5/0) ZeroDivisionError: división entera o módulo por cero

==================================================== ===================== FALLO: testFail (foo.testFoo) ---------------------- ------------------------------------------------ Rastrear ( última llamada más reciente): Archivo "foo.py", línea 8, en testFail self.assertEqual(2+2, 5) AssertionError: 4 != 5

==================================================== ===================== FALLO: testFailWithDocString (foo.testFoo) foo bar -------------------- -------------------------------------------------- Rastreo (última llamada más reciente): archivo "foo.py", línea 31, en testFailWithDocString self.assertEqual(2+2, 5) AssertionError: 4! = 5

-------------------------------------------------- -------------------- Ejecuté 8 pruebas en 0.001s

FALLADO (fallos=2, errores=1, omitido=1, fallos esperados=1, éxitos inesperados=1)

TODO: considere refactorizar la clase completa, el manejo es bastante complicado en este momento.

Resumen

Constructores públicos

PythonUnitTestResultParser ( ITestInvocationListener listener, String runName)

Cree un nuevo PythonUnitTestResultParser que informe al ITestInvocationListener determinado.

PythonUnitTestResultParser ( listeners, String runName) PythonUnitTestResultParser ( listeners, String runName)

Cree un nuevo PythonUnitTestResultParser que informe a los ITestInvocationListener dados.

PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters)

Cree un nuevo PythonUnitTestResultParser que informe a los ITestInvocationListener dados, con filtros de inclusión y exclusión especificados.

Métodos públicos

void finalizeParser ()
boolean isCancelled ()
void processNewLines (String[] lines)

Procese la salida de la prueba unitaria de Python e informe los resultados analizados.

void setFinalizeWhenParsing (boolean shouldFinalize)

Constructores públicos

PythonUnitTestResultParser

public PythonUnitTestResultParser (ITestInvocationListener listener, 
                String runName)

Cree un nuevo PythonUnitTestResultParser que informe al ITestInvocationListener determinado.

Parámetros
listener ITestInvocationListener

runName String

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName)

Cree un nuevo PythonUnitTestResultParser que informe a los ITestInvocationListener dados.

Parámetros
listeners

runName String

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName, 
                 includeFilters, 
                 excludeFilters)

Cree un nuevo PythonUnitTestResultParser que informe a los ITestInvocationListener dados, con filtros de inclusión y exclusión especificados.

Parámetros
listeners

runName String

includeFilters

excludeFilters

Métodos públicos

finalizarParser

public void finalizeParser ()

está cancelado

public boolean isCancelled ()

Devoluciones
boolean

procesoNuevasLíneas

public void processNewLines (String[] lines)

Procese la salida de la prueba unitaria de Python e informe los resultados analizados.

Este método debe llamarse 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