ShardMainResultForwarder
public class ShardMainResultForwarder
extends ResultForwarder
implements ILogSaverListener
java.lang.Object | ||
↳ | com.android.tradefed.result.ResultForwarder | |
↳ | com.android.tradefed.invoker.ShardMainResultForwarder |
合併分片測試呼叫結果的ResultForwarder
。它僅在所有分片呼叫完成後才向偵聽器報告呼叫完成情況。
該類別不是線程安全的。預計客戶端在發送測試結果時會鎖定此類,以防止亂序呼叫呼叫回調。
概括
公共構造函數 | |
---|---|
ShardMainResultForwarder ( listeners, int expectedShards) ShardMainResultForwarder ( listeners, int expectedShards) 建立一個 |
公共方法 | |
---|---|
getListeners () 獲取聽眾清單。 | |
void | invocationEnded (long elapsedTime) 報告呼叫已終止,無論是成功還是由於某些錯誤情況。 |
void | invocationEnded (long elapsedTime, IInvocationContext context) 更詳細的回調以區分哪個分片已完成。 |
void | invocationFailed ( FailureDescription failure) 由於某些錯誤情況而報告不完整的呼叫。 |
void | invocationFailed (Throwable cause) 由於某些錯誤情況而報告不完整的呼叫。 |
void | invocationStarted ( IInvocationContext context) 報告測試調用的開始。 |
void | logAssociation (String dataName, LogFile logFile) 在某些情況下,日誌必須與測試案例強關聯,但有機會這樣做就直接 |
void | testLogForward (String dataName, LogDataType dataType, InputStreamSource dataStream) 只轉發testLog,而不是先儲存log。 |
void | testLogSaved (String dataName, LogDataType dataType, InputStreamSource dataStream, LogFile logFile) 保存測試日誌時調用。 |
公共構造函數
ShardMainResultForwarder
public ShardMainResultForwarder (listeners, int expectedShards)
建立一個ShardMainResultForwarder
。
參數 | |
---|---|
listeners | ITestInvocationListener 列表 |
expectedShards | int : 分片數量 |
公共方法
呼叫結束
public void invocationEnded (long elapsedTime)
報告呼叫已終止,無論是成功還是由於某些錯誤情況。
將由 TradeFederation 框架自動呼叫。參數 | |
---|---|
elapsedTime | long :呼叫所花費的時間(以毫秒為單位) |
呼叫結束
public void invocationEnded (long elapsedTime, IInvocationContext context)
更詳細的回調以區分哪個分片已完成。
參數 | |
---|---|
elapsedTime | long |
context | IInvocationContext |
呼叫失敗
public void invocationFailed (FailureDescription failure)
由於某些錯誤情況而報告不完整的呼叫。
將由 TradeFederation 框架自動呼叫。
參數 | |
---|---|
failure | FailureDescription :描述失敗原因的FailureDescription |
呼叫失敗
public void invocationFailed (Throwable cause)
由於某些錯誤情況而報告不完整的呼叫。
將由 TradeFederation 框架自動呼叫。參數 | |
---|---|
cause | Throwable :失敗的Throwable 原因 |
調用開始
public void invocationStarted (IInvocationContext context)
報告測試調用的開始。
將由 TradeFederation 框架自動呼叫。記者需要重寫此方法以支援多設備報告。
參數 | |
---|---|
context | IInvocationContext :有關呼叫的信息 |
日誌關聯
public void logAssociation (String dataName, LogFile logFile)
在某些情況下,日誌必須與測試案例強關聯,但有機會這樣做就直接testLogSaved(String, com.android.tradefed.result.LogDataType, com.android.tradefed.result.InputStreamSource, com.android.tradefed.result.LogFile)
回呼是不可能的。因此,此回調允許明確提供強關聯。
參數 | |
---|---|
dataName | String : 資料的名稱 |
logFile | LogFile :先前記錄的LogFile ,應與測試案例關聯。 |
測試日誌轉發
public void testLogForward (String dataName, LogDataType dataType, InputStreamSource dataStream)
只轉發testLog,而不是先儲存log。
參數 | |
---|---|
dataName | String |
dataType | LogDataType |
dataStream | InputStreamSource |
測試日誌已儲存
public void testLogSaved (String dataName, LogDataType dataType, InputStreamSource dataStream, LogFile logFile)
保存測試日誌時調用。
應該用來取代ITestInvocationListener#testLog(String, LogDataType, InputStreamSource)
。
參數 | |
---|---|
dataName | String :資料的String 描述性名稱。例如“device_logcat”。注意 每次呼叫時 dataName 可能不是唯一的。即實現者必須能夠處理具有相同 dataName 的多個呼叫 |
dataType | LogDataType :資料的LogDataType |
dataStream | InputStreamSource :資料的InputStreamSource 。實作者應該呼叫 createInputStream 來開始讀取數據,並確保完成後關閉產生的 InputStream。 |
logFile | LogFile :包含已儲存檔案的元資料的LogFile 。 |