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 converte 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 integer \u201ctests in\u201d float \u201ds\u201d. Status ::= \u201cOK\u201d | \u201cFAILED (erros=\u201d int \u201c)\u201d. Traceback ::= 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

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

OK

Saída de exemplo (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 --------------------------- ------------------------------------------- Realizou 1 teste em 0,001s FALHA (erros=1)

Saída de exemplo 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 ( last call last): 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

-------------------------------------------------- -------------------- Execute 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 confuso agora.

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 se reporta 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 de unidade 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 se reporta aos ITestInvocationListener s fornecidos, com filtros de inclusão e exclusão especificados.

Parâmetros
listeners

runName String

includeFilters

excludeFilters

Métodos públicos

finalizeParser

public void finalizeParser ()

é cancelado

public boolean isCancelled ()

devoluções
boolean

processarNovasLinhas

public void processNewLines (String[] lines)

Processe a saída do teste de unidade do Python e relate os resultados analisados.

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

Parâmetros
lines String

setFinalizeWhenParsing

public void setFinalizeWhenParsing (boolean shouldFinalize)

Parâmetros
shouldFinalize boolean