InstrumentationProtoResultParser
public
class
InstrumentationProtoResultParser
extends Object
implements
IInstrumentationResultParser
java.lang.Object | |
↳ | com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser |
Analisa os resultados do "modo de saída protoStd" de uma execução de teste de instrumentação no shell e informa um ITestRunListener sobre os resultados.
Um comando de instrumento com a opção "-m" exibe o status de execução do teste no formato protobuf binário
de forma incremental. A mensagem protobuf de saída é InstrumentationData.Session
, que tem dois
campos: 1) um campo repetido de InstrumentationData.TestStatus
e 2) InstrumentationData.SessionStatus
. O comando am instrument gera a mensagem de status do teste
antes/depois de cada execução do teste. addOutput(byte, int, int)
é invocado com um argumento data
,
que é um bytes serializado de TestStatus
(s). Quando todos os testes são concluídos, o comando
gera SessionStatus
por último.
Consulte https://cs.android.com/android/platform/superproject/+/master:frameworks/base/cmds/am/proto/instrumentation_data.proto para conferir uma definição completa do protobuf.
InstrumentationProtoResultParser
é uma máquina de estados, e os estados são definidos em ERROR(InstrumentationProtoResultParserState/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState InstrumentationProtoResultParserState)
. O estado começa com ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED)
. Quando o status do primeiro caso de teste é detectado, ele
muda para ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING)
. O estado muda para ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED)
se todos os testes forem concluídos ou ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED)
se for solicitado chamando cancel()
.
Sempre que um novo status de teste estiver disponível, ele será informado aos listeners registrados.
Resumo
Construtores públicos | |
---|---|
InstrumentationProtoResultParser(String runName,
|
Métodos públicos | |
---|---|
void
|
addOutput(byte[] data, int offset, int length)
Esse método é chamado sempre que novos dados estão disponíveis. |
void
|
cancel()
|
void
|
flush()
|
void
|
handleTestRunFailed(String errorMsg)
|
boolean
|
isCancelled()
|
Construtores públicos
InstrumentationProtoResultParser
public InstrumentationProtoResultParser (String runName,listeners)
Cria InstrumentationProtoResultParser
.
Parâmetros | |
---|---|
runName |
String : o nome da execução de teste a ser fornecido a ITestRunListener.testRunStarted |
listeners |
: informado sobre os resultados dos testes à medida que eles são executados |
Métodos públicos
addOutput
public void addOutput (byte[] data, int offset, int length)
Esse método é chamado sempre que novos dados estão disponíveis.
Parâmetros | |
---|---|
data |
byte : dados serializados da mensagem InstrumentationData.Session . Se data
for um bloco incompleto, ele será adicionado a um buffer interno e processado na
próxima chamada de addOutput(byte, int, int) . |
offset |
int : um deslocamento dos novos dados armazenados em data |
length |
int : bytes de novos dados em data a serem processados. |
cancelar
public void cancel ()
limpar
public void flush ()
handleTestRunFailed
public void handleTestRunFailed (String errorMsg)
Parâmetros | |
---|---|
errorMsg |
String |
isCancelled
public boolean isCancelled ()
Retorna | |
---|---|
boolean |