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) ... ERROR 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 , который передает данные ITestInvocationListener .

PythonUnitTestResultParser ( listeners, String runName) PythonUnitTestResultParser ( listeners, String runName)

Создайте новый PythonUnitTestResultParser , который передает данные данным ITestInvocationListener s.

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

Создайте новый PythonUnitTestResultParser , который сообщает данным ITestInvocationListener с указанными фильтрами включения и исключения.

Публичные методы

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