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 en una serie de ITestInvocationListener
s. El resultado de estas pruebas sigue esta gramática EBNF:
TestReport ::= TestResult* Line TimeMetric [FailMessage*] Estado. TestResult ::= string \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 \u201ctests en\u201d float \u201ds\u201d. Estado ::= \u201cOK\u201d | \u201cFALLIDO (errores=\u201d int \u201c)\u201d. Seguimiento ::= cadena+.
Salida de ejemplo (aprobación): 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) ... está bien
-------------------------------------------------- -------------------- Realizó 5 pruebas en 0,002 s
DE ACUERDO
Ejemplo de salida (fallido) test_size (test_rangelib.RangeSetTest) ... ERROR
================================================== ==================== ERROR: test_size (test_rangelib.RangeSetTest) ---------------------- ------------------------------------------------ Rastrear ( última llamada más reciente): Archivo "test_rangelib.py", línea 129, en test_rangelib aumentar ValueError() ValueError --------------------------- ------------------------------------------- Ejecutó 1 prueba en 0.001s FALLÓ (errores=1)
Salida de ejemplo con varios casos extremos (fallido): testError (foo.testFoo) ... ERROR testExpectedFailure (foo.testFoo) ... falla esperada testFail (foo.testFoo) ... FAIL testFailWithDocString (foo.testFoo) foo bar . .. FAIL testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... omitido 'motivo 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
================================================== ==================== FALLA: pruebaFalla (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
-------------------------------------------------- -------------------- Realizó 8 pruebas en 0,001 s
FALLIDO (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
dado.
Parámetros | |
---|---|
listener | ITestInvocationListener |
runName | String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName)
Cree un nuevo PythonUnitTestResultParser
que informe a los ITestInvocationListener
s 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 |
procesarNuevasLí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 la salida completa, a diferencia del método base en MultiLineReceiver
.
Parámetros | |
---|---|
lines | String |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
Parámetros | |
---|---|
shouldFinalize | boolean |