PythonUnitTestResultParser

public class PythonUnitTestResultParser
extends MultiLineReceiver

java.lang.Объект
com.android.ddmlib.MultiLineReceiver
com.android.tradefed.testtype.PythonUnitTestResultParser


Интерпретирует выходные данные тестов, запущенных с помощью Python unittest framework, и переводит их в вызовы серии ITestInvocationListener s. Результат этих тестов следует этой грамматике EBNF:

TestReport ::= TestResult* Line TimeMetric [FailMessage*] Статус. TestResult ::= строка \u201c(\u201cstring\u201d)\u201d \u201c\u2026\u201d SingleStatus. FailMessage ::= EqLine \u201cERROR:\u201d string \u201c(\u201cstring\u201d)=Line Line Traceback Line. SingleStatus ::= \u201cok\u201d | \u201cОШИБКА\u201d. TimeMetric ::= \u201cRan\u201d integer \u201ctests in=float =s\u201d. Статус ::= \u201cOK\u201d | \u201cFAILED (ошибки=\u201d int\u201c)\u201d. Трассировка ::= строка+.

Пример вывода (прохождение): 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) ... ок

-------------------------------------------------- -------------------- Провел 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

================================================== ==================== FAIL: testFailWithDocString (foo.testFoo) foo bar -------------------- -------------------------------------------------- Трассировка (последний последний вызов): файл «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

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

finalizeParser

public void finalizeParser ()

isCancelled

public boolean isCancelled ()

Возвращает
boolean

процессНовыеЛинии

public void processNewLines (String[] lines)

Обрабатывайте выходные данные модульного теста Python и сообщайте о результатах анализа.

Этот метод следует вызывать только один раз с полным выводом, в отличие от базового метода в MultiLineReceiver .

Параметры
lines String

setFinalizeWhenParsing

public void setFinalizeWhenParsing (boolean shouldFinalize)

Параметры
shouldFinalize boolean