InstrumentationProtoResultParser
public
class
InstrumentationProtoResultParser
extends Object
implements
IInstrumentationResultParser
java.lang.Object | |
↳ | com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser |
剖析從殼層執行的檢測測試的「protoStd 輸出模式」結果,並將結果通知 ITestRunListener。
搭配「-m」選項的 Am 檢測指令會以二進位 protobuf 格式逐漸輸出測試執行狀態。輸出的 protobuf 訊息為 InstrumentationData.Session
,其中包含兩個欄位:1) 重複欄位 InstrumentationData.TestStatus
,2) InstrumentationData.SessionStatus
。am 檢測指令會在每次執行測試前/後輸出測試狀態訊息。addOutput(byte, int, int)
會使用 data
引數叫用,該引數是 TestStatus
的序列化位元組。所有測試完成後,指令最後會輸出 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(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#NOT_STARTED)
。當它看到第一個測試案例狀態時,就會移至 ERROR(InstrumentationProtoResultParserState.RUNNING/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#RUNNING InstrumentationProtoResultParserState.RUNNING)
。如果所有測試都完成,狀態會變更為 ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#FINISHED)
;如果是透過呼叫 cancel()
要求,則會變更為 ERROR(/com.android.tradefed.result.ddmlib.InstrumentationProtoResultParser.InstrumentationProtoResultParserState#CANCELLED)
。
每當有新的測試狀態時,系統就會通知已註冊的監聽者。
摘要
公用建構函式 | |
---|---|
InstrumentationProtoResultParser(String runName,
|
公用方法 | |
---|---|
void
|
addOutput(byte[] data, int offset, int length)
每當有新資料可用時,系統就會呼叫此方法。 |
void
|
cancel()
|
void
|
flush()
|
void
|
handleTestRunFailed(String errorMsg)
|
boolean
|
isCancelled()
|
公用建構函式
InstrumentationProtoResultParser
public InstrumentationProtoResultParser (String runName,listeners)
建構 InstrumentationProtoResultParser
。
參數 | |
---|---|
runName |
String :要提供給 ITestRunListener.testRunStarted 的測試執行名稱 |
listeners |
:在執行測試時通知測試結果 |
公用方法
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 中新資料的位元組。 |
cancel
public void cancel ()
排空
public void flush ()
handleTestRunFailed
public void handleTestRunFailed (String errorMsg)
參數 | |
---|---|
errorMsg |
String |
isCancelled
public boolean isCancelled ()
傳回 | |
---|---|
boolean |