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 ( 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 |
Публичные методы
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 |