InstrumentationResultParser

public class InstrumentationResultParser
extends MultiLineReceiver implements IInstrumentationResultParser

java.lang.Object
com.android.ddmlib.MultiLineReceiver
  com.android.tradefed.result.ddmlib.InstrumentationResultParser


解析来自 shell 的插桩测试运行的“原始输出模式”结果,并将结果告知 ITestRunListener。

预期输出如下:

如果尝试运行测试时发生致命错误:

 INSTRUMENTATION_STATUS: Error=error Message
 INSTRUMENTATION_FAILED:
 

 INSTRUMENTATION_RESULT: shortMsg=error Message
 

否则,预期会有一系列测试结果,每个结果都包含一组状态键/值 对,并以 start(1)/pass(0)/fail(-2)/error(-1) 状态代码结果分隔。在测试运行结束时, 预期会显示以秒为单位的测试运行时间

例如:

 INSTRUMENTATION_STATUS_CODE: 1
 INSTRUMENTATION_STATUS: class=com.foo.FooTest
 INSTRUMENTATION_STATUS: test=testFoo
 INSTRUMENTATION_STATUS: numtests=2
 INSTRUMENTATION_STATUS: stack=com.foo.FooTest#testFoo:312
    com.foo.X
 INSTRUMENTATION_STATUS_CODE: -2
 ...

 Time: X
 

请注意,键值对的“值”部分可能会换行显示

请改用 InstrumentationProtoResultParser。基于 Proto 的解析器包含其他 信息,例如 logcat 消息。

摘要

公共构造函数

InstrumentationResultParser(String runName, ITestRunListener listener)

为单个监听器创建 InstrumentationResultParser。

InstrumentationResultParser(String runName, Collection<ITestRunListener> listeners)

创建 InstrumentationResultParser。

公共方法

void cancel()

请求取消测试运行。

void done()

在 adb 会话完成时由父级调用。

void handleTestRunFailed(String errorMsg)

当“am instrument”命令因异常而崩溃时,系统会调用此方法。

boolean isCancelled()

如果测试运行已取消,则返回 true。

void processNewLines(String[] lines)

处理来自 shell 的插桩测试输出。

公共构造函数

InstrumentationResultParser

public InstrumentationResultParser (String runName, 
                ITestRunListener listener)

为单个监听器创建 InstrumentationResultParser。

参数
runName String:要提供给 ITestRunListener.testRunStarted(String,int) 的测试运行名称

listener ITestRunListener:在测试执行时接收测试结果通知

InstrumentationResultParser

public InstrumentationResultParser (String runName, 
                Collection<ITestRunListener> listeners)

创建 InstrumentationResultParser。

参数
runName String:要提供给 ITestRunListener.testRunStarted(String,int) 的测试运行名称

listeners Collection:在测试执行时接收测试结果通知

公共方法

cancel

public void cancel ()

请求取消测试运行。

done

public void done ()

在 adb 会话完成时由父级调用。

handleTestRunFailed

public void handleTestRunFailed (String errorMsg)

当“am instrument”命令因异常而崩溃时,系统会调用此方法。如果崩溃发生在测试作业期间,则应通知所有已注册的 监听器 ITestRunListener.testRunFailed,然后通知 ITestRunListener.testRunEnded

参数
errorMsg String

isCancelled

public boolean isCancelled ()

如果测试运行已取消,则返回 true。

返回
boolean true 表示取消命令的执行。

processNewLines

public void processNewLines (String[] lines)

处理来自 shell 的插桩测试输出。

参数
lines String:包含新行的数组。