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 ::= cadena \u201c(\u201ccadena\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, ya que 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 | 
