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, 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, 
                 listeners)

创建 InstrumentationResultParser。

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

listeners :在测试执行时获知测试结果

公共方法

取消

public void cancel ()

请求取消测试运行。

done

public void done ()

当 adb 会话完成时,由父进程调用。

handleTestRunFailed

public void handleTestRunFailed (String errorMsg)

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

参数
errorMsg String

isCancelled

public boolean isCancelled ()

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

返回
boolean 如果为 true,则取消命令的执行。

processNewLines

public void processNewLines (String[] lines)

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

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