InvocationExecution

public class InvocationExecution
extends Object implements IInvocationExecution

java.lang.Object
   ↳ com.android.tradefed.invoker.InvocationExecution


用于描述所有调用步骤的类:构建下载、target_prep、运行测试、清理。可扩展以替换某些步骤的默认行为。步骤的顺序由 TestInvocation 决定。

摘要

常量

String ADB_VERSION_KEY

String JAVA_CLASSPATH_KEY

String JAVA_VERSION_KEY

公共构造函数

InvocationExecution()

公共方法

void cleanUpBuilds(IInvocationContext context, IConfiguration config)

执行 build_provider 清理步骤。

void doCleanUp(IInvocationContext context, IConfiguration config, Throwable exception)

执行 target_preparer 和 multi_target_preparer cleanUp 步骤。

void doSetup(TestInformation testInfo, IConfiguration config, ITestLogger listener)

执行 target_preparer 和 multi_target_preparer setUp 步骤。

void doTeardown(TestInformation testInfo, IConfiguration config, ITestLogger logger, Throwable exception)

执行 target_preparer 和 multi_target_preparer 拆解步骤。

boolean fetchBuild(TestInformation testInfo, IConfiguration config, IRescheduler rescheduler, ITestInvocationListener listener)

执行调用的 build_provider 步骤。

void reportLogs(ITestDevice device, ITestLogger listener, TestInvocation.Stage stage)

在调用的不同阶段报告一些设备日志。

void runDevicePostInvocationTearDown(IInvocationContext context, IConfiguration config, Throwable exception)

针对调用的每个设备部分调用 ITestDevice.postInvocationTearDown(Throwable)

void runDevicePreInvocationSetup(IInvocationContext context, IConfiguration config, ITestLogger logger)

针对调用的每个设备部分调用 ERROR(ITestDevice.preInvocationSetup(IBuildInfo)/com.android.tradefed.device.ITestDevice#preInvocationSetup(com.android.tradefed.build.IBuildInfo) ITestDevice.preInvocationSetup(IBuildInfo))

void runTests(TestInformation info, IConfiguration config, ITestInvocationListener listener)

运行测试。

boolean shardConfig(IConfiguration config, TestInformation testInfo, IRescheduler rescheduler, ITestLogger logger)

尝试将配置分片为子配置,以便重新安排在多个资源上并行运行。

受保护的方法

void collectAutoInfo(IConfiguration config, TestInformation info)

自动收集有关被测主设备的一些信息。

IShardHelper createShardHelper()

创建并返回要使用的 IShardHelper

void customizeDevicePreInvocation(IConfiguration config, IInvocationContext context)

在 preInvocationSetup 之前有机会自定义部分设备。

String getAdbVersion()

返回调用所使用的 adb 版本。

getLabPreparersToRun(IConfiguration config, String deviceName)

检索要在相应设备上运行的实验准备器的列表。

getTargetPreparersToRun(IConfiguration config, String deviceName)

检索要在相应设备上运行的目标准备器列表。

void linkExternalDirs(IBuildInfo info, TestInformation testInfo)
void logHostAdb(IConfiguration config, ITestLogger logger)

从 $TMPDIR/adb.$UID.log 收集日志。

Throwable runPreparersTearDown(TestInformation testInfo, ITestDevice device, String deviceName, int deviceIndex, ITestLogger logger, Throwable exception, preparersToRun, trackPreparersMap)
void setTestTag(IBuildInfo info, IConfiguration config)

处理在 build 信息中设置测试标记。

常量

ADB_VERSION_KEY

public static final String ADB_VERSION_KEY

常量值: "adb_version"

JAVA_CLASSPATH_KEY

public static final String JAVA_CLASSPATH_KEY

常量值: "java_classpath"

JAVA_VERSION_KEY

public static final String JAVA_VERSION_KEY

常量值: “java_version”

公共构造函数

InvocationExecution

public InvocationExecution ()

公共方法

cleanUpBuilds

public void cleanUpBuilds (IInvocationContext context, 
                IConfiguration config)

执行 build_provider 清理步骤。与 build 提取相关。

参数
context IInvocationContext:调用的 IInvocationContext

config IConfiguration:相应测试运行的 IConfiguration

doCleanUp

public void doCleanUp (IInvocationContext context, 
                IConfiguration config, 
                Throwable exception)

执行 target_preparer 和 multi_target_preparer cleanUp 步骤。设备是否清理干净。

参数
context IInvocationContext:调用的 IInvocationContext

config IConfiguration:相应测试运行的 IConfiguration

exception Throwable:测试运行抛出的原始异常。

doSetup

public void doSetup (TestInformation testInfo, 
                IConfiguration config, 
                ITestLogger listener)

执行 target_preparer 和 multi_target_preparer setUp 步骤。设置运行测试所需的所有设备。

参数
testInfo TestInformation:调用的 TestInformation

config IConfiguration:相应测试运行的 IConfiguration

listener ITestLogger:用于报告设置失败日志的 ITestLogger

抛出
BuildError
DeviceNotAvailableException
TargetSetupError

doTeardown

public void doTeardown (TestInformation testInfo, 
                IConfiguration config, 
                ITestLogger logger, 
                Throwable exception)

执行 target_preparer 和 multi_target_preparer 拆解步骤。拆除与设置关联的设备。

参数
testInfo TestInformation:调用的 TestInformation

config IConfiguration:相应测试运行的 IConfiguration

logger ITestLogger:用于报告日志的 ITestLogger

exception Throwable:测试运行抛出的原始异常。

fetchBuild

public boolean fetchBuild (TestInformation testInfo, 
                IConfiguration config, 
                IRescheduler rescheduler, 
                ITestInvocationListener listener)

执行调用的 build_provider 步骤。

参数
testInfo TestInformation:调用的 TestInformation

config IConfiguration:相应测试运行的 IConfiguration

rescheduler IReschedulerIRescheduler,用于重新安排部分调用的执行,以便在其他资源上执行

listener ITestInvocationListener:用于报告 build 下载失败的 ITestInvocation

返回
boolean 如果我们成功下载了 build,则为 true,否则为 false。

抛出
BuildRetrievalError
DeviceNotAvailableException

reportLogs

public void reportLogs (ITestDevice device, 
                ITestLogger listener, 
                TestInvocation.Stage stage)

在调用的不同阶段报告一些设备日志。例如:logcat。

参数
device ITestDevice:要报告日志的设备。

listener ITestLogger:日志记录器。

stage TestInvocation.Stage:我们所处的调用阶段。

runDevicePostInvocationTearDown

public void runDevicePostInvocationTearDown (IInvocationContext context, 
                IConfiguration config, 
                Throwable exception)

针对调用的每个设备部分调用 ITestDevice.postInvocationTearDown(Throwable)

参数
context IInvocationContext:调用的 IInvocationContext

config IConfiguration:相应测试运行的 IConfiguration

exception Throwable:测试运行抛出的原始异常(如果有)。

runDevicePreInvocationSetup

public void runDevicePreInvocationSetup (IInvocationContext context, 
                IConfiguration config, 
                ITestLogger logger)

针对调用的每个设备部分调用 ERROR(ITestDevice.preInvocationSetup(IBuildInfo)/com.android.tradefed.device.ITestDevice#preInvocationSetup(com.android.tradefed.build.IBuildInfo) ITestDevice.preInvocationSetup(IBuildInfo))

参数
context IInvocationContext:调用的 IInvocationContext

config IConfiguration:相应测试运行的 IConfiguration

logger ITestLogger:用于报告日志的 ITestLogger

抛出
DeviceNotAvailableException
TargetSetupError

runTests

public void runTests (TestInformation info, 
                IConfiguration config, 
                ITestInvocationListener listener)

运行测试。

参数
info TestInformation:用于运行测试的 TestInformation

config IConfiguration:要运行的 IConfiguration

listener ITestInvocationListener:测试结果的 ITestInvocationListener

shardConfig

public boolean shardConfig (IConfiguration config, 
                TestInformation testInfo, 
                IRescheduler rescheduler, 
                ITestLogger logger)

尝试将配置分片为子配置,以便重新安排在多个资源上并行运行。

如果分片数大于 1,它将通过设置分片索引并重新安排分片来为每个分片创建配置。如果未设置分片数,则会回退到 IShardHelper.shardConfig

参数
config IConfiguration:当前的 IConfiguration

testInfo TestInformation:包含测试信息的 TestInformation

rescheduler IReschedulerIRescheduler

logger ITestLogger:用于在分片期间记录文件的 ITestLogger

返回
boolean 如果测试已分片,则为 true。否则返回 false

受保护的方法

collectAutoInfo

protected void collectAutoInfo (IConfiguration config, 
                TestInformation info)

自动收集有关主要被测设备的一些信息。

参数
config IConfiguration

info TestInformation

抛出
DeviceNotAvailableException

createShardHelper

protected IShardHelper createShardHelper ()

创建并返回要使用的 IShardHelper

返回
IShardHelper

customizeDevicePreInvocation

protected void customizeDevicePreInvocation (IConfiguration config, 
                IInvocationContext context)

在 preInvocationSetup 之前,有机会自定义部分设备。

参数
config IConfiguration:调用的配置。

context IInvocationContext:当前调用上下文。

getAdbVersion

protected String getAdbVersion ()

返回调用所使用的 adb 版本。

返回
String

getLabPreparersToRun

protected  getLabPreparersToRun (IConfiguration config, 
                String deviceName)

检索要在相应设备上运行的实验准备器的列表。

在沙盒类中被替换,以限制在沙盒子级中运行实验准备器

参数
config IConfiguration

deviceName String

返回

getTargetPreparersToRun

protected  getTargetPreparersToRun (IConfiguration config, 
                String deviceName)

检索要在此设备上运行的目标准备器的列表。

在沙盒类中被替换,以限制在沙盒子级中运行实验准备器

参数
config IConfiguration

deviceName String

返回

linkExternalDirs

protected void linkExternalDirs (IBuildInfo info, 
                TestInformation testInfo)

参数
info IBuildInfo

testInfo TestInformation

logHostAdb

protected void logHostAdb (IConfiguration config, 
                ITestLogger logger)

从 $TMPDIR/adb.$UID.log 收集日志。

参数
config IConfiguration

logger ITestLogger

runPreparersTearDown

protected Throwable runPreparersTearDown (TestInformation testInfo, 
                ITestDevice device, 
                String deviceName, 
                int deviceIndex, 
                ITestLogger logger, 
                Throwable exception, 
                 preparersToRun, 
                 trackPreparersMap)

参数
testInfo TestInformation

device ITestDevice

deviceName String

deviceIndex int

logger ITestLogger

exception Throwable

preparersToRun

trackPreparersMap

返回
Throwable

setTestTag

protected void setTestTag (IBuildInfo info, 
                IConfiguration config)

处理在 build 信息中设置测试标记。

参数
info IBuildInfo

config IConfiguration