PythonUnitTestResultParser

public class PythonUnitTestResultParser
extends MultiLineReceiver

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


Interpreta o resultado dos testes executados com o framework unittest do Python e o converte em chamadas. em uma série de ITestInvocationListeners. A saída desses testes segue este EBNF gramática:

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

Exemplo de saída (aprovado): 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

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

OK

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

====================================================================== ERRO: test_size teste_rangelib.RangeSetTest ---------------------------------------------------------------------- Traceback (mais recente) call last): arquivo "test_rangelib.py", linha 129, em test_rangelib aumentar ValueError() ValueError ---------------------------------------------------------------------- 1 teste executado em 0,001 s FALHA (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) barra foo ... ok testSkipped (foo.testFoo) ... ignorado 'reason foo" testUnexpectedSuccess (foo.testFoo) ... sucesso inesperado

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

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

====================================================================== ERRO: Barra de foo testFailWithDocString (foo.testFoo) ---------------------------------------------------------------------- Traceback (mais recente) call last): File "foo.py", linha 31, em testFailWithDocString self.assertEqual(2+2, 5) AssertionError: 4 != 5

---------------------------------------------------------------------- 8 testes foram executados em 0,001 s

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

O que fazer: considere refatorar a classe completa. O processamento está bem confuso no momento.

Resumo

Construtores públicos

PythonUnitTestResultParser(ITestInvocationListener listener, String runName)

Cria um novo PythonUnitTestResultParser que gera relatórios para o ITestInvocationListener especificado.

PythonUnitTestResultParser( listeners, String runName)

Crie um novo PythonUnitTestResultParser que gere relatórios para os ITestInvocationListeners fornecidos.

PythonUnitTestResultParser( listeners, String runName, includeFilters, excludeFilters)

Cria um novo PythonUnitTestResultParser que gera relatórios para os ITestInvocationListeners fornecidos, com filtros de inclusão e exclusão especificados.

Métodos públicos

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

Processar a saída do unittest do Python e relatar os resultados analisados.

void setFinalizeWhenParsing(boolean shouldFinalize)

Construtores públicos

PythonUnitTestResultParser

public PythonUnitTestResultParser (ITestInvocationListener listener, 
                String runName)

Cria um novo PythonUnitTestResultParser que gera relatórios para o ITestInvocationListener especificado.

Parâmetros
listener ITestInvocationListener

runName String

PythonUnitTestResultParser

public PythonUnitTestResultParser ( listeners, 
                String runName)

Crie um novo PythonUnitTestResultParser que gere relatórios para os ITestInvocationListeners fornecidos.

Parâmetros
listeners

runName String

PythonUnitTestResultParser

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

Cria um novo PythonUnitTestResultParser que gera relatórios para os ITestInvocationListeners 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 ()

IsCancelado

public boolean isCancelled ()

Retorna
boolean

processNewLines

public void processNewLines (String[] lines)

Processar a saída do unittest do Python e relatar 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