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 ( listeners, String runName) PythonUnitTestResultParser ( listeners, String runName) Cree un nuevo | |
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 |
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 |