PythonUnitTestResultParser
public class PythonUnitTestResultParser
extends MultiLineReceiver
java.lang.Объект | ||
↳ | com.android.ddmlib.MultiLineReceiver | |
↳ | com.android.tradefed.testtype.PythonUnitTestResultParser |
Интерпретирует выходные данные тестов, запускаемых с помощью платформы unittest Python, и преобразует их в вызовы серии ITestInvocationListener
. Вывод этих тестов соответствует следующей грамматике EBNF:
TestReport ::= TestResult* Line TimeMetric [FailMessage*] Статус. TestResult ::= string \u201c(\u201cstring\u201d)= \u201c\u2026\u201d SingleStatus. FailMessage ::= EqLine \u201cERROR:\u201d string \u201c(\u201cstring\u201d) = Line Traceback Line. SingleStatus ::= \u201cok= | \u201cОШИБКА=. TimeMetric ::= \u201cRan\u201d целое число \u201cтесты в\u201d float =s\u201d. Статус ::= \u201cОК= | \u201cFAILED (errors== int \u201c)=. Обратная трассировка ::= строка+.
Пример вывода (передача): test_size (test_rangelib.RangeSetTest) ... ок test_str (test_rangelib.RangeSetTest) ... ок test_subtract (test_rangelib.RangeSetTest) ... ок test_to_string_raw (test_rangelib.RangeSetTest) ... ок test_union (test_rangelib. RangeSetTest) ... ок
-------------------------------------------------- -------------------- Выполнил 5 тестов за 0,002 с.
ХОРОШО
Пример вывода (не удалось) test_size (test_rangelib.RangeSetTest)... ОШИБКА
=============================================== ==================== ОШИБКА: test_size (test_rangelib.RangeSetTest) ---------------------- ------------------------------------------------ Обратная связь ( последний вызов последним): Файл "test_rangelib.py", строка 129, в test_rangelib поднять ValueError() ValueError --------------------------- ------------------------------------------ Выполнен 1 тест за 0,001 с. НЕУДАЧНО (ошибки=1)
Пример вывода с несколькими крайними случаями (не удалось): testError (foo.testFoo) ... ОШИБКА testExpectedFailure (foo.testFoo) ... ожидаемый сбой testFail (foo.testFoo) ... FAIL testFailWithDocString (foo.testFoo) foo bar . .. FAIL testOk (foo.testFoo) ... ok testOkWithDocString (foo.testFoo) foo bar ... ok testSkipped (foo.testFoo) ... пропущен «причина foo» testUnexpectedSuccess (foo.testFoo) ... неожиданный успех
=============================================== =================== ОШИБКА: testError (foo.testFoo) ---------------------- ------------------------------------------------ Обратная связь ( последний вызов последний): файл «foo.py», строка 11, в testError self.assertEqual(2+2, 5/0) ZeroDivisionError: целочисленное деление или по модулю на ноль
=============================================== ==================== FAIL: testFail (foo.testFoo) ---------------------- ------------------------------------------------ Обратная связь ( последний вызов последним): файл «foo.py», строка 8, в testFail self.assertEqual(2+2, 5) AssertionError: 4 != 5
=============================================== =================== ОШИБКА: testFailWithDocString (foo.testFoo) foo bar -------------------- -------------------------------------------------- Traceback (последний вызов последний): файл «foo.py», строка 31, в testFailWithDocString self.assertEqual(2+2, 5) AssertionError: 4 != 5
-------------------------------------------------- -------------------- Выполнено 8 тестов за 0,001 с.
FAILED (ошибки=2, ошибки=1, пропущены=1, ожидаемые сбои=1, неожиданные успехи=1)
TODO: Рассмотрите возможность рефакторинга всего класса, обработка сейчас довольно беспорядочная.
Краткое содержание
Общественные конструкторы | |
---|---|
PythonUnitTestResultParser ( ITestInvocationListener listener, String runName) Создайте новый | |
PythonUnitTestResultParser ( listeners, String runName) PythonUnitTestResultParser ( listeners, String runName) Создайте новый | |
PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) PythonUnitTestResultParser ( listeners, String runName, includeFilters, excludeFilters) Создайте новый |
Публичные методы | |
---|---|
void | finalizeParser () |
boolean | isCancelled () |
void | processNewLines (String[] lines) Обработайте выходные данные модульного теста Python и сообщите о результатах анализа. |
void | setFinalizeWhenParsing (boolean shouldFinalize) |
Общественные конструкторы
PythonUnitTestResultParser
public PythonUnitTestResultParser (ITestInvocationListener listener, String runName)
Создайте новый PythonUnitTestResultParser
, который передает данные ITestInvocationListener
.
Параметры | |
---|---|
listener | ITestInvocationListener |
runName | String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName)
Создайте новый PythonUnitTestResultParser
, который передает отчеты данным ITestInvocationListener
s.
Параметры | |
---|---|
listeners | |
runName | String |
PythonUnitTestResultParser
public PythonUnitTestResultParser (listeners, String runName, includeFilters, excludeFilters)
Создайте новый PythonUnitTestResultParser
, который передает данные данным ITestInvocationListener
с указанными фильтрами включения и исключения.
Параметры | |
---|---|
listeners | |
runName | String |
includeFilters | |
excludeFilters |
Публичные методы
финализироватьПарсер
public void finalizeParser ()
isCancelled
public boolean isCancelled ()
Возврат | |
---|---|
boolean |
процессNewLines
public void processNewLines (String[] lines)
Обработайте выходные данные модульного теста Python и сообщите о результатах анализа.
Этот метод следует вызывать только один раз с полным выводом, в отличие от базового метода в MultiLineReceiver
.
Параметры | |
---|---|
lines | String |
setFinalizeWhenParsing
public void setFinalizeWhenParsing (boolean shouldFinalize)
Параметры | |
---|---|
shouldFinalize | boolean |