PythonUnitTestResultParser
public
class
PythonUnitTestResultParser
extends MultiLineReceiver
java.lang.Object | ||
↳ | com.android.ddmlib.MultiLineReceiver | |
↳ | com.android.tradefed.testtype.PythonUnitTestResultParser |
Interpreta a saída dos testes executados com o framework de 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* Line 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 | \u201cERROR\u201d. TimeMetric ::= \u201cRan\u201d integer \u201ctests in\u201d float \u201ds\u201d. Status ::= \u201cOK\u201d | \u201cFAILED (errors=\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
---------------------------------------------------------------------- Executou 5 testes em 0,002s
OK
Exemplo de saída (falhou) test_size (test_rangelib.RangeSetTest) ... ERROR
====================================================================== ERROR: test_size (test_rangelib.RangeSetTest) ---------------------------------------------------------------------- Traceback (call mais recente no final): File "test_rangelib.py", line 129, in test_rangelib raise ValueError() ValueError ---------------------------------------------------------------------- Realizou 1 teste em 0,001s FALHOU (errors=1)
Exemplo de saída com vários casos extremos (falha): testError (foo.testFoo) ... ERROR testExpectedFailure (foo.testFoo) ... expected failure testFail (foo.testFoo) ... FAIL testFailWithDocString (foo.testFoo) foo bar ... FAIL testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... skipped 'reason foo' testUnexpectedSuccess (foo.testFoo) ... unexpected success
====================================================================== ERROR: testError (foo.testFoo) ---------------------------------------------------------------------- Traceback (call mais recente por último): Arquivo "foo.py", linha 11, em testError self.assertEqual(2+2, 5/0) ZeroDivisionError: divisão de números inteiros ou módulo por zero
====================================================================== FAIL: testFail (foo.testFoo) ---------------------------------------------------------------------- Traceback (call mais recente por último): File "foo.py", line 8, in testFail self.assertEqual(2+2, 5) AssertionError: 4 != 5
====================================================================== FAIL: testFailWithDocString (foo.testFoo) foo bar ---------------------------------------------------------------------- Traceback (call mais recente por último): File "foo.py", line 31, in testFailWithDocString self.assertEqual(2+2, 5) AssertionError: 4 != 5
---------------------------------------------------------------------- 8 testes foram executados em 0,001s
COM FALHA (falhas=2, erros=1, ignoradas=1, falhas esperadas=1, sucessos inesperados=1)
AINDA: considere refatorar a classe completa. O processamento está bastante confuso no momento.
Resumo
Construtores públicos | |
---|---|
PythonUnitTestResultParser(
Crie um novo |
|
PythonUnitTestResultParser(
Crie um novo |
Métodos públicos | |
---|---|
void
|
finalizeParser()
|
boolean
|
isCancelled()
|
void
|
processNewLines(String[] lines)
Processa a saída do unittest do Python e informa os resultados analisados. |
void
|
setFinalizeWhenParsing(boolean shouldFinalize)
|
Construtores públicos
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName)
Crie um novo PythonUnitTestResultParser
que informe os ITestInvocationListener
s fornecidos.
Parâmetros | |
---|---|
listeners |
|
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName, includeFilters, excludeFilters)
Crie um novo PythonUnitTestResultParser
que informe os ITestInvocationListener
s especificados, com filtros de inclusão e exclusão especificados.
Parâmetros | |
---|---|
listeners |
|
runName |
String |
includeFilters |
|
excludeFilters |
|
Métodos públicos
finalizeParser
public void finalizeParser ()
isCancelled
public boolean isCancelled ()
Retorna | |
---|---|
boolean |
processNewLines
public void processNewLines (String[] lines)
Processe a saída do unittest do Python e informe os resultados analisados.
Esse método precisa ser chamado apenas uma vez com a saída completa, diferente do método base em
MultiLineReceiver
.
Parâmetros | |
---|---|
lines |
String |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
Parâmetros | |
---|---|
shouldFinalize |
boolean |