錯誤報告收集器

public class BugreportCollector
extends Object implements ITestInvocationListener

java.lang.Object
com.android.tradefed.result.BugreportCollector


一個傳遞ITestInvocationListener ,它在發生可配置事件時收集錯誤報告,然後在收集每個錯誤報告後對其子項調用ITestInvocationListener#testLog

行為:(FIXME:完成這個)

  • 在每個測試用例失敗後捕獲
  • 在每個測試用例之後捕獲
  • 在每個失敗的測試用例之後捕獲
  • 捕獲

概括

嵌套類

class BugreportCollector.Predicate

描述何時捕獲錯誤報告的完整謂詞。

interface BugreportCollector.SubPredicate

領域

public static final BugreportCollector.Predicate AFTER_FAILED_TESTCASES

在每個失敗的測試用例之後觸發的預定義謂詞

public static final BugreportCollector.Predicate AT_START

在第一次調用開始時觸發的預定義謂詞

公共構造函數

BugreportCollector ( ITestInvocationListener listener, ITestDevice testDevice)

公共方法

void addPredicate ( BugreportCollector.Predicate p)
void blockUntilIdle ()

阻塞直到收集器不收集任何錯誤報告。

TestSummary getSummary ()

允許 InvocationListener 返回摘要。

void invocationEnded (long elapsedTime)

報告調用已終止,無論是成功終止還是由於某些錯誤情況。

void invocationFailed (Throwable cause)

報告由於某些錯誤情況導致的不完整調用。

void invocationStarted ( IInvocationContext context)

報告測試調用的開始。

void setAsynchronous (boolean asynchronous)

設置錯誤報告收集是否應該在不同的線程中收集錯誤報告 ( asynchronous = true ),或者阻止調用者直到錯誤報告被捕獲 ( asynchronous = false )。

void setDescriptiveName (String name)

設置在記錄錯誤報告時使用的描述性名稱。

void setDeviceWaitTime (int waitTime)

在我們嘗試捕獲錯誤報告之前,設置等待設備在線的時間(以秒為單位)。

void testAssumptionFailure ( TestDescription test, String trace)

當原子測試標記它假定條件為假時調用

void testEnded ( TestDescription test, testMetrics) testEnded ( TestDescription test, testMetrics)

報告單個測試用例的執行結束。

void testFailed ( TestDescription test, String trace)

報告單個測試用例的失敗。

void testIgnored ( TestDescription test)

當測試不會運行時調用,通常是因為測試方法用 org.junit.Ignore 註釋。

void testLog (String dataName, LogDataType dataType, InputStreamSource dataStream)

提供來自測試調用的關聯日誌或調試數據。

void testRunEnded (long elapsedTime, runMetrics) testRunEnded (long elapsedTime, runMetrics)

報告測試運行結束。

void testRunFailed (String errorMessage)

報告測試運行由於致命錯誤而未能完成。

void testRunStarted (String runName, int testCount)

報告測試運行的開始。

void testRunStopped (long elapsedTime)

由於用戶請求,報告測試運行在完成之前停止。

void testStarted ( TestDescription test)

報告單個測試用例的開始。

領域

AFTER_FAILED_TESTCASES 之後

public static final BugreportCollector.Predicate AFTER_FAILED_TESTCASES

在每個失敗的測試用例之後觸發的預定義謂詞

AT_START

public static final BugreportCollector.Predicate AT_START

在第一次調用開始時觸發的預定義謂詞

公共構造函數

錯誤報告收集器

public BugreportCollector (ITestInvocationListener listener, 
                ITestDevice testDevice)

參數
listener ITestInvocationListener

testDevice ITestDevice

公共方法

添加謂詞

public void addPredicate (BugreportCollector.Predicate p)

參數
p BugreportCollector.Predicate

阻塞直到空閒

public void blockUntilIdle ()

阻塞直到收集器不收集任何錯誤報告。如果收集器沒有主動收集錯誤報告,立即返回

獲取摘要

public TestSummary getSummary ()

允許 InvocationListener 返回摘要。

退貨
TestSummary總結運行的TestSummary ,或 null

調用結束

public void invocationEnded (long elapsedTime)

報告調用已終止,無論是成功終止還是由於某些錯誤情況。

將由 TradeFederation 框架自動調用。

參數
elapsedTime long :調用經過的時間(以毫秒為單位)

調用失敗

public void invocationFailed (Throwable cause)

報告由於某些錯誤情況導致的不完整調用。

將由 TradeFederation 框架自動調用。

參數
cause Throwable : 失敗的ERROR(/Throwable)原因

調用開始

public void invocationStarted (IInvocationContext context)

報告測試調用的開始。

將由 TradeFederation 框架自動調用。記者需要覆蓋此方法以支持多設備報告。

參數
context IInvocationContext :有關調用的信息

設置異步

public void setAsynchronous (boolean asynchronous)

設置錯誤報告收集是否應該在不同的線程中收集錯誤報告 ( asynchronous = true ),或者阻止調用者直到錯誤報告被捕獲 ( asynchronous = false )。

參數
asynchronous boolean

設置描述名稱

public void setDescriptiveName (String name)

設置在記錄錯誤報告時使用的描述性名稱。如果為nullBugreportCollector將退回到默認行為,即序列化導致收集錯誤報告的事件的名稱。

參數
name String

設置設備等待時間

public void setDeviceWaitTime (int waitTime)

在我們嘗試捕獲錯誤報告之前,設置等待設備在線的時間(以秒為單位)。如果是否定的,將不執行檢查。在此檢查期間遇到的任何DeviceNotAvailableException都將被記錄並忽略。

參數
waitTime int

測試假設失敗

public void testAssumptionFailure (TestDescription test, 
                String trace)

當原子測試標記它假定條件為假時調用

參數
test TestDescription :標識測試

trace String :失敗的堆棧跟踪

測試結束

public void testEnded (TestDescription test, 
                 testMetrics)

報告單個測試用例的執行結束。

如果未調用testFailed(TestDescription, FailureDescription) ,則此測試通過。還返回在測試用例執行期間可能發出的任何鍵/值指標。

參數
test TestDescription :標識測試

testMetrics : 發出的指標的ERROR(/Map)

測試失敗

public void testFailed (TestDescription test, 
                String trace)

報告單個測試用例的失敗。

將在 testStarted 和 testEnded 之間調用。

參數
test TestDescription :標識測試

trace String :失敗的堆棧跟踪

測試忽略

public void testIgnored (TestDescription test)

當測試不會運行時調用,通常是因為測試方法用 org.junit.Ignore 註釋。

參數
test TestDescription :標識測試

測試日誌

public void testLog (String dataName, 
                LogDataType dataType, 
                InputStreamSource dataStream)

提供來自測試調用的關聯日誌或調試數據。

必須在ERROR(/ITestInvocationListener#invocationFailed(Throwable))ERROR(/ITestInvocationListener#invocationEnded(long))之前調用

TradeFederation 框架將自動調用此方法,提供主機日誌和設備 logcat(如果適用)。

參數
dataName String :數據的ERROR(/String)描述性名稱。例如“device_logcat”。注意 dataName 每次調用可能不是唯一的。即實現者必須能夠處理具有相同數據名的多個調用

dataType LogDataType :數據的LogDataType

dataStream InputStreamSource :數據的InputStreamSource 。實施者應調用 createInputStream 開始讀取數據,並確保在完成後關閉生成的 InputStream。調用者應確保數據源保持存在且可訪問,直到 testLog 方法完成。

測試運行結束

public void testRunEnded (long elapsedTime, 
                 runMetrics)

報告測試運行結束。 FIXME: 我們不能有兩個不同類型的 Map<> 接口,所以我們必須在這裡使用 HashMap。

參數
elapsedTime long :設備報告經過的時間,以毫秒為單位

runMetrics :在測試運行結束時使用Metric報告的鍵值對。

測試運行失敗

public void testRunFailed (String errorMessage)

報告測試運行由於致命錯誤而未能完成。

參數
errorMessage String : ERROR(/String)描述運行失敗的原因。

測試運行開始

public void testRunStarted (String runName, 
                int testCount)

報告測試運行的開始。

參數
runName String : 測試運行名稱

testCount int : 測試運行中的測試總數

測試運行已停止

public void testRunStopped (long elapsedTime)

由於用戶請求,報告測試運行在完成之前停止。

TODO:目前未使用,考慮刪除

參數
elapsedTime long :設備報告經過的時間,以毫秒為單位

測試開始

public void testStarted (TestDescription test)

報告單個測試用例的開始。較舊的界面,應盡可能使用testStarted(com.android.tradefed.result.TestDescription)

參數
test TestDescription :標識測試