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) Создает | |
Общедоступные методы | |
|---|---|
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 | Нажмите «Да» для отмены выполнения команды. |