ShardListener
public
class
ShardListener
extends CollectingTestListener
implements
ISupportGranularResults
java.lang.Object | ||
↳ | com.android.tradefed.result.CollectingTestListener | |
↳ | com.android.tradefed.invoker.ShardListener |
呼び出しシャード(複数のリソースで並行して実行される呼び出し分割)から結果を収集し、別のリスナーに転送する ITestInvocationListener
。
概要
パブリック コンストラクタ | |
---|---|
ShardListener(ITestInvocationListener main)
|
パブリック メソッド | |
---|---|
|
getUnderlyingResultReporter()
|
void
|
invocationEnded(long elapsedTime)
呼び出しが正常に終了したか、なんらかのエラー状態が原因で終了したかを報告します。 |
void
|
invocationFailed(FailureDescription failure)
エラー状態が原因で呼び出しが完了しなかったことを報告します。 |
void
|
invocationFailed(Throwable cause)
エラー状態が原因で呼び出しが完了しなかったことを報告します。 |
void
|
invocationSkipped(SkipReason reason)
呼び出しをスキップされたものとして報告します |
void
|
invocationStarted(IInvocationContext context)
テスト呼び出しの開始を報告します。 |
void
|
logAssociation(String dataName, LogFile logFile)
場合によっては、ログをテストケースに強く関連付ける必要があります。ただし、直接の |
void
|
setSupportGranularResults(boolean enableGranularResults)
|
boolean
|
supportGranularResults()
レポーターが詳細な結果をサポートしている場合は true、そうでない場合は false を返します。 |
void
|
testLog(String dataName, LogDataType dataType, InputStreamSource dataStream)
テスト呼び出しから関連するログデータまたはデバッグデータを提供します。 |
void
|
testLogSaved(String dataName, LogDataType dataType, InputStreamSource dataStream, LogFile logFile)
|
void
|
testModuleEnded()
モジュールの実行の終了を報告します。 |
void
|
testModuleStarted(IInvocationContext moduleContext)
モジュールの実行開始を報告します。 |
void
|
testRunEnded(long elapsedTime,
テスト実行の終了を報告します。 |
void
|
testRunFailed(FailureDescription failure)
|
void
|
testRunFailed(String failureMessage)
致命的なエラーのため、テスト実行を完了できなかったと報告する。 |
void
|
testRunStarted(String name, int numTests, int attemptNumber, long startTime)
テスト実行の開始を報告します。 |
パブリック コンストラクタ
ShardListener
public ShardListener (ITestInvocationListener main)
ShardListener
を作成します。
パラメータ | |
---|---|
main |
ITestInvocationListener : 結果を転送する ITestInvocationListener 。他の ShardListener との競合を防ぐため、このオブジェクトは結果を転送するときに main で同期します。また、呼び出しシャードが完了した後にのみ結果が送信されます。 |
パブリック メソッド
getUnderlyingResultReporter
publicgetUnderlyingResultReporter ()
戻り値 | |
---|---|
|
invocationEnded
public void invocationEnded (long elapsedTime)
呼び出しが正常に終了したか、なんらかのエラー状態が原因で終了したかを報告します。
TradeFederation フレームワークによって自動的に呼び出されます。
パラメータ | |
---|---|
elapsedTime |
long : 呼び出しの所要時間(ミリ秒単位) |
invocationFailed
public void invocationFailed (FailureDescription failure)
エラー条件により不完全な呼び出しを報告します。
TradeFederation フレームワークによって自動的に呼び出されます。
パラメータ | |
---|---|
failure |
FailureDescription : 障害の原因を説明する FailureDescription |
invocationFailed
public void invocationFailed (Throwable cause)
エラー状態が原因で呼び出しが完了しなかったことを報告します。
TradeFederation フレームワークによって自動的に呼び出されます。
パラメータ | |
---|---|
cause |
Throwable : 失敗の原因である Throwable |
invocationSkipped
public void invocationSkipped (SkipReason reason)
呼び出しをスキップとして報告する
パラメータ | |
---|---|
reason |
SkipReason |
invocationStarted
public void invocationStarted (IInvocationContext context)
テスト呼び出しの開始を報告します。
TradeFederation フレームワークによって自動的に呼び出されます。複数のデバイスのレポートをサポートするには、レポーターがこのメソッドをオーバーライドする必要があります。
パラメータ | |
---|---|
context |
IInvocationContext : 呼び出しに関する情報 |
logAssociation
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 。 |
setSupportGranularResults
public void setSupportGranularResults (boolean enableGranularResults)
パラメータ | |
---|---|
enableGranularResults |
boolean |
supportGranularResults
public boolean supportGranularResults ()
レポーターが詳細な結果をサポートしている場合は true、それ以外の場合は false を返します。
戻り値 | |
---|---|
boolean |
testLog
public void testLog (String dataName, LogDataType dataType, InputStreamSource dataStream)
テスト呼び出しの関連ログまたはデバッグデータを提供します。
ERROR(/ITestInvocationListener#invocationFailed(Throwable))
または ERROR(/ITestInvocationListener#invocationEnded(long))
の前に呼び出す必要があります。
TradeFederation フレームワークは自動的にこのメソッドを呼び出し、ホストログと、該当する場合はデバイスの logcat を提供します。
パラメータ | |
---|---|
dataName |
String : データのわかりやすい名前(例: device_logcat)。String dataName は呼び出しごとに一意でない可能性があります。つまり、実装者は同じ dataName で複数の呼び出しを処理できなければなりません。 |
dataType |
LogDataType : データの LogDataType |
dataStream |
InputStreamSource : データの InputStreamSource 。実装者は createInputStream を呼び出してデータの読み取りを開始し、完了したら結果の InputStream を必ず閉じる必要があります。呼び出し元は、testLog メソッドが完了するまで、データソースが存在し、アクセス可能であることを確認する必要があります。 |
testLogSaved
public void testLogSaved (String dataName, LogDataType dataType, InputStreamSource dataStream, LogFile logFile)
パラメータ | |
---|---|
dataName |
String |
dataType |
LogDataType |
dataStream |
InputStreamSource |
logFile |
LogFile |
testModuleEnded
public void testModuleEnded ()
モジュール実行の終了をレポートします。
testModuleStarted
public void testModuleStarted (IInvocationContext moduleContext)
モジュールの実行開始を報告します。このコールバックは testModuleEnded()
に関連付けられており、シーケンスでは省略可能です。これは、モジュール(スイートベースのランナー)を使用する実行中にのみ使用されます。
パラメータ | |
---|---|
moduleContext |
IInvocationContext : モジュールの IInvocationContext 。 |
testRunEnded
public void testRunEnded (long elapsedTime,runMetrics)
テスト実行の終了を報告します。
パラメータ | |
---|---|
elapsedTime |
long : デバイスで報告された経過時間(ミリ秒単位) |
runMetrics |
: テスト実行の終了時に報告される Key-Value ペア |
testRunFailed
public void testRunFailed (FailureDescription failure)
FailureDescription
で説明されているエラーのため、テスト実行を完了できなかったことをレポートします。
パラメータ | |
---|---|
failure |
FailureDescription : エラーとそのコンテキストを記述する FailureDescription 。 |
testRunFailed
public void testRunFailed (String failureMessage)
致命的なエラーが発生したため、レポートのテスト実行が完了しませんでした。
パラメータ | |
---|---|
failureMessage |
String : 実行失敗の理由を説明する String 。 |
testRunStarted
public void testRunStarted (String name, int numTests, int attemptNumber, long startTime)
テスト実行の開始を報告します。
パラメータ | |
---|---|
name |
String : テスト実行名 |
numTests |
int : テスト実行のテスト数の合計 |
attemptNumber |
int : オーダー番号。同じ runName を複数回実行する際の試行を識別します。tryNumber の値は 0 から始まり、新しい実行が発生するたびに増加します。たとえば、テストを 3 回細かく再試行する場合、同じ runName で合計 4 回の実行が必要であり、AttemptNumber は 0 ~ 3 です。 |
startTime |
long : 実行が開始された時刻(System.currentTimeMillis() で測定) |