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 o framework unittest do Python e a traduz em chamadas
em uma série de ITestInvocationListeners. 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
---------------------------------------------------------------------- Foram executados 5 testes em 0,002 s
OK
Exemplo de saída (falha) test_size (test_rangelib.RangeSetTest) ... ERROR
====================================================================== ERROR: test_size (test_rangelib.RangeSetTest) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_rangelib.py", line 129, in test_rangelib raise ValueError() ValueError ---------------------------------------------------------------------- Ran 1 test in 0.001s FAILED (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 (most recent call last): File "foo.py", line 11, in testError self.assertEqual(2+2, 5/0) ZeroDivisionError: integer division or modulo by zero
====================================================================== FALHA: testFail (foo.testFoo) ---------------------------------------------------------------------- Traceback (most recent call last): File "foo.py", line 8, in testFail self.assertEqual(2+2, 5) AssertionError: 4 != 5
====================================================================== FAIL: testFailWithDocString (foo.testFoo) foo bar ---------------------------------------------------------------------- Traceback (most recent call last): File "foo.py", line 31, in testFailWithDocString self.assertEqual(2+2, 5) AssertionError: 4 != 5
---------------------------------------------------------------------- Ran 8 tests in 0.001s
FAILED (failures=2, errors=1, skipped=1, expected failures=1, unexpected successes=1)
TODO: Consider refactoring the full class, handling is quite messy right now.
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 gere relatórios para os ITestInvocationListeners especificados.
| Parâmetros | |
|---|---|
listeners |
|
runName |
String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName, includeFilters, excludeFilters)
Crie um novo PythonUnitTestResultParser que gere relatórios para os ITestInvocationListeners 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)
Processa a saída do unittest do Python e informa os resultados analisados.
Esse método precisa ser chamado apenas uma vez com a saída completa, ao contrário do método básico em
MultiLineReceiver.
| Parâmetros | |
|---|---|
lines |
String: a matriz que contém as novas linhas. |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
| Parâmetros | |
|---|---|
shouldFinalize |
boolean |