InstrumentationProtoResultParser

public class InstrumentationProtoResultParser
extends Object implements IInstrumentationResultParser

java.lang.Object
com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser


Анализирует результаты выполнения инструментального теста в режиме «protoStd output mode» из командной строки и передает эти результаты обработчику ITestRunListener.

Команда `am instrument` с опцией `-m` выводит статус выполнения тестов в двоичном формате Protobuf с пошаговым инкрементом. Выходное сообщение Protobuf — это InstrumentationData.Session , который содержит два поля: 1) повторяющееся поле InstrumentationData.TestStatus , 2) InstrumentationData.SessionStatus . Команда `am instrument` выводит сообщение о статусе теста до и после каждого выполнения теста. addOutput(byte, int, int) вызывается с аргументом data , представляющим собой сериализованные байты TestStatus (es). После завершения всех тестов команда в конце выводит SessionStatus .

Полное определение protobuf см. по ссылке https://cs.android.com/android/platform/superproject/+/master:frameworks/base/cmds/am/proto/instrumentation_data.proto.

InstrumentationProtoResultParser — это конечный автомат, и состояния определяются в ERROR(InstrumentationProtoResultParserState/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState InstrumentationProtoResultParserState) . Состояние начинается с ERROR(InstrumentationProtoResultParserState.NOT_STARTED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED InstrumentationProtoResultParserState.NOT_STARTED) . При обнаружении первого статуса тестового случая происходит переход к ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING) . Состояние изменяется на ERROR(InstrumentationProtoResultParserState.FINISHED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED InstrumentationProtoResultParserState.FINISHED) , если все тесты выполнены, или ERROR(InstrumentationProtoResultParserState.CANCELLED/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED InstrumentationProtoResultParserState.CANCELLED) если оно запрошено вызовом метода cancel() .

Каждый раз, когда появляется новый статус тестирования, о нём будет сообщено зарегистрированным слушателям.

Краткое содержание

Государственные строители

InstrumentationProtoResultParser (String runName, Collection< ITestRunListener > listeners)

Создает InstrumentationProtoResultParser .

Общедоступные методы

void addOutput (byte[] data, int offset, int length)

Этот метод вызывается каждый раз, когда появляются новые данные.

void cancel ()

Запрос на отмену тестового запуска.

void flush ()

Вызывается в конце выполнения процесса (если только процесс не был отменен).

void handleTestRunFailed (String errorMsg)

Этот метод вызывается, когда команда "am instrument" завершается с ошибкой.

boolean isCancelled ()

Метод отмены позволяет остановить выполнение команды удаленной оболочки.

Государственные строители

InstrumentationProtoResultParser

public InstrumentationProtoResultParser (String runName, 
                Collection<ITestRunListener> listeners)

Создает InstrumentationProtoResultParser .

Параметры
runName String : имя тестового запуска, которое необходимо передать в метод ITestRunListener.testRunStarted

listeners Collection : получение информации о результатах тестирования по мере его выполнения.

Общедоступные методы

addOutput

public void addOutput (byte[] data, 
                int offset, 
                int length)

Этот метод вызывается каждый раз, когда появляются новые данные.

Параметры
data byte : сериализованные данные сообщения InstrumentationData.Session . Если data представляют собой неполный фрагмент, они добавляются во внутренний буфер и будут обработаны при следующем вызове addOutput(byte, int, int) .

offset int : смещение новых данных, хранящихся в data

length int : байты новых data , подлежащих обработке.

отмена

public void cancel ()

Запрос на отмену тестового запуска.

румянец

public void flush ()

Вызывается в конце выполнения процесса (если процесс не был отменен). Это позволяет получателю завершить работу и сбросить все данные, которые еще не были обработаны.

handleTestRunFailed

public void handleTestRunFailed (String errorMsg)

Этот метод вызывается, когда команда "am instrument" завершается с ошибкой. Все зарегистрированные слушатели должны быть уведомлены об ошибке ITestRunListener.testRunFailed , а затем об ITestRunListener.testRunEnded если сбой происходит во время выполнения теста.

Параметры
errorMsg String

отменено

public boolean isCancelled ()

Метод отмены позволяет остановить выполнение команды удаленной оболочки.

Возвраты
boolean Нажмите «Да» для отмены выполнения команды.