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 ITestInvocationListener
s. 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(
Crie um novo |
|
PythonUnitTestResultParser(
Cria um novo |
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 ITestInvocationListener
s fornecidos.
Parâmetros | |
---|---|
listeners |
|
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName, includeFilters, excludeFilters)
Cria um novo PythonUnitTestResultParser
que gera relatórios para os 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 ()
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 |