PythonUnitTestResultParser

public class PythonUnitTestResultParser
extends MultiLineReceiver

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


Interpreta a saída de testes executados com a estrutura unittest do Python e a traduz em chamadas em uma série de ITestInvocationListener s. A saída desses testes segue esta gramática EBNF:

TestReport ::= TestResult* Linha TimeMetric [FailMessage*] Status. TestResult ::= string \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d SingleStatus. FailMessage ::= EqLine \u201cERROR:\u201d string \u201c(\u201cstring\u201d)\u201d Line Traceback Line. SingleStatus ::= \u201cok\u201d | \u201cERRO\u201d. TimeMetric ::= \u201cRan\u201d inteiro \u201ctestes em\u201d float \u201ds\u201d. Status ::= \u201cOK\u201d | \u201cFAILED (erros=\u201d int \u201c)\u201d. Rastreamento ::= string+.

Exemplo de saída (aprovação): 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

-------------------------------------------------- -------------------- Executei 5 testes em 0,002s

OK

Exemplo de saída (com falha) test_size (test_rangelib.RangeSetTest) ... ERRO

================================================= ==================== ERRO: test_size (test_rangelib.RangeSetTest) ---------------------- ------------------------------------------------ Rastreamento ( última chamada mais recente): Arquivo "test_rangelib.py", linha 129, em test_rangelib raise ValueError() ValueError --------------------------- ------------------------------------------- Executei 1 teste em 0,001s FALHOU (erros=1)

Exemplo de saída com vários casos extremos (com falha): testError (foo.testFoo) ... ERROR testExpectedFailure (foo.testFoo) ... falha esperada testFail (foo.testFoo) ... FAIL testFailWithDocString (foo.testFoo) foo bar . .. FAIL testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... ignorado 'motivo foo' testUnexpectedSuccess (foo.testFoo) ... sucesso inesperado

================================================= ==================== ERRO: testError (foo.testFoo) ---------------------- ------------------------------------------------ Rastreamento ( última chamada mais recente): Arquivo "foo.py", linha 11, em testError self.assertEqual(2+2, 5/0) ZeroDivisionError: divisão inteira ou módulo por zero

================================================= ==================== FALHA: testFail (foo.testFoo) ---------------------- ------------------------------------------------ Rastreamento ( última chamada mais recente): Arquivo "foo.py", linha 8, em testFail self.assertEqual(2+2, 5) AssertionError: 4 != 5

================================================= ==================== FALHA: testFailWithDocString (foo.testFoo) foo bar -------------------- -------------------------------------------------- Traceback (última chamada mais recente): Arquivo "foo.py", linha 31, em testFailWithDocString self.assertEqual(2+2, 5) AssertionError: 4 != 5

-------------------------------------------------- -------------------- Executei 8 testes em 0,001s

FAILED (falhas=2, erros=1, ignorados=1, falhas esperadas=1, sucessos inesperados=1)

TODO: Considere refatorar a classe completa, o manuseio está bastante complicado no momento.

Resumo

Construtores públicos

PythonUnitTestResultParser ( ITestInvocationListener listener, String runName)

Crie um novo PythonUnitTestResultParser que se reporte ao ITestInvocationListener fornecido.

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

Crie um novo PythonUnitTestResultParser que se reporte aos ITestInvocationListener s fornecidos.

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

Crie um novo PythonUnitTestResultParser que reporte aos ITestInvocationListener s fornecidos, com filtros de inclusão e exclusão especificados.

Métodos públicos

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

Processe a saída do teste unitário do Python e relate os resultados analisados.

void setFinalizeWhenParsing (boolean shouldFinalize)

Construtores públicos

PythonUnitTestResultParser

public PythonUnitTestResultParser (ITestInvocationListener listener, 
                String runName)

Crie um novo PythonUnitTestResultParser que se reporte ao ITestInvocationListener fornecido.

Parâmetros
listener ITestInvocationListener

runName String

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName)

Crie um novo PythonUnitTestResultParser que se reporte aos ITestInvocationListener s fornecidos.

Parâmetros
listeners

runName String

PythonUnitTestResultParser

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

Crie um novo PythonUnitTestResultParser que reporte aos ITestInvocationListener s fornecidos, com filtros de inclusão e exclusão especificados.

Parâmetros
listeners

runName String

includeFilters

excludeFilters

Métodos públicos

finalizarParser

public void finalizeParser ()

é cancelado

public boolean isCancelled ()

Devoluções
boolean

processNewLines

public void processNewLines (String[] lines)

Processe a saída do teste unitário do Python e relate os resultados analisados.

Este método deve ser chamado apenas uma vez com a saída completa, diferentemente do método base em MultiLineReceiver .

Parâmetros
lines String

setFinalizeWhenParsing

public void setFinalizeWhenParsing (boolean shouldFinalize)

Parâmetros
shouldFinalize boolean