ITestSuite

public abstract class ITestSuite
extends Object implements IBuildReceiver, IConfigurationReceiver, IDeviceTest, IInvocationContextReceiver, IMetricCollectorReceiver, IRemoteTest, IReportNotExecuted, IRuntimeHintProvider, IShardableTest, ISystemStatusCheckerReceiver, ITestCollector, ITestLoggerReceiver, ITokenRequest

java.lang.Object
   ↳ com.android.tradefed.testtype.suite.ITestSuite


用于运行测试套件的抽象类。此类提供有关如何运行套件的基础信息。 每项实现都可以通过 loadTests() 方法定义测试列表。

摘要

常量

String ABI_OPTION

String ACTIVE_MAINLINE_PARAMETER_KEY

String BUILD_ATTRIBUTE_FLAG_OVERRIDES_KEY

String ENABLE_RESOLVE_SYM_LINKS

String MAINLINE_PARAMETER_KEY

String MODULE_CHECKER_POST

String MODULE_CHECKER_PRE

String MODULE_END_TIME

String MODULE_METADATA_EXCLUDE_FILTER

String MODULE_METADATA_INCLUDE_FILTER

String MODULE_START_TIME

String PARAMETER_KEY

String PREPARER_WHITELIST

String PRIMARY_ABI_RUN

String RANDOM_SEED

String RUNNER_WHITELIST

String SKIP_HOST_ARCH_CHECK

String SKIP_STAGING_ARTIFACTS

String SKIP_SYSTEM_STATUS_CHECKER

String STAGE_MODULE_ARTIFACTS

String TEST_TYPE_KEY

String TEST_TYPE_VALUE_PERFORMANCE

String TOKEN_KEY

字段

protected boolean mEnableResolveSymlinks

protected boolean mRecoverDeviceByCvd

公共构造函数

ITestSuite()

公共方法

void addModuleMetadataExcludeFilters(MultiMap<String, String> filters)
void addModuleMetadataIncludeFilters(MultiMap<String, String> filters)
void cleanUpSuiteSetup()

有机会清理在套件设置期间需要但运行测试不需要的所有内容。

boolean filterByConfigMetadata(IConfiguration config, MultiMap<String, String> include, MultiMap<String, String> exclude)

将元数据过滤条件应用于配置,并查看配置是否应运行。

getAbis(ITestDevice device)

获取兼容性测试 AbiUtils.getAbisSupportedByCompatibility() 和被测设备都支持的 ABI 集。

static getAbisForBuildTargetArchFromSuite()

从 TestSuiteInfo 返回可能的 ABI。

IBuildInfo getBuildInfo()

ITestSuite 的实现可能需要 build 信息来加载测试。

final IConfiguration getConfiguration()

返回调用 IConfiguration

ITestLogger getCurrentTestLogger()
ITestDevice getDevice()

获取被测设备。

ModuleDefinition getDirectModule()

返回要直接执行的 ModuleDefinition,如果没有(当 ITestSuite 尚未分片时),则返回 null。

boolean getIntraModuleSharding()
IInvocationContext getInvocationContext()

返回调用上下文。

MultiMap<String, String> getModuleMetadataIncludeFilters()
ITestSuite.MultiDeviceModuleStrategy getMultiDeviceStrategy()
final String getRequestedAbi()

返回通过选项 -a 或 --abi 请求的 ABI。

getRequiredTokens(TestInformation testInfo)

返回测试所需的令牌列表。

long getRuntimeHint()

以毫秒为单位返回测试的预期运行时长。

File getTestsDir()
boolean isRemoveModuleBuffering()
boolean isSplitting()

如果我们目前处于 IShardableTest.split(int) 状态,则返回 true。

abstract loadTests()

用于加载将要运行的测试配置的抽象方法。

void reportNotExecuted(ITestInvocationListener listener, String message)

向提供的主监听器报告未执行的测试。

void reportNotExecuted(ITestInvocationListener listener)

向提供的主监听器报告未执行的测试。

final void run(TestInformation testInfo, ITestInvocationListener listener)

loadTests() 加载的所有测试的通用运行方法。

void setAbiName(String abiName)

设置 mAbiName 的值

final void setAbis( abis)
void setBuild(IBuildInfo buildInfo)

void setCollectTestsOnly(boolean shouldCollectTest)

以仅收集器模式运行测试套件,这要求所有子测试也实现此接口。

void setConfiguration(IConfiguration configuration)

注入正在使用的 IConfiguration

void setDevice(ITestDevice device)

注入被测设备。

void setDirectModule(ModuleDefinition module)
void setIntraModuleSharding(boolean intraModuleSharding)
void setInvocationContext(IInvocationContext invocationContext)

void setMetricCollectors( collectors)

设置为测试运行定义的 IMetricCollector 列表。

void setMultiDeviceStrategy(ITestSuite.MultiDeviceModuleStrategy strategy)
void setPrimaryAbiRun(boolean primaryAbiRun)

设置 mPrimaryAbiRun 的值

void setShouldMakeDynamicModule(boolean dynamicModule)

在进行分布式分片时,我们不能有在池中共享测试的 ModuleDefinition,否则模块内分片将无法正常运行,因此我们允许停用它。

void setSkipContext(SkipContext skipContext)
void setSystemStatusChecker( systemCheckers)

根据测试的配置设置 ISystemStatusChecker

void setTestLogger(ITestLogger testLogger)

注入 ITestLogger 实例

split(Integer shardCountHint, TestInformation testInfo)

split(int) 的替代版本,还提供了一个 TestInformation,其中包含创建分片的父级的早期信息。

受保护的方法

createModuleListeners()

返回适用于 ModuleListener 级别的 ITestInvocationListener 列表。

boolean filterByRunnerType(IConfiguration config, allowedRunners)

应用 Runner 白名单过滤,移除未列入白名单的任何 Runner。

getAbisForBuildTargetArch()

返回主机 build 目标架构支持的 ABI。

getHostAbis()

返回宿主机器的 ABI。

void setPrioritizeHostConfig(boolean prioritizeHostConfig)

设置选项 prioritize-host-config。

boolean shouldModuleRun(ModuleDefinition module)

常量

ABI_OPTION

public static final String ABI_OPTION

常量值: "abi"

ACTIVE_MAINLINE_PARAMETER_KEY

public static final String ACTIVE_MAINLINE_PARAMETER_KEY

常量值: “active-mainline-parameter”

BUILD_ATTRIBUTE_FLAG_OVERRIDES_KEY

public static final String BUILD_ATTRIBUTE_FLAG_OVERRIDES_KEY

常量值: “flag-overrides”

public static final String ENABLE_RESOLVE_SYM_LINKS

常量值: "enable-resolve-sym-links"

MAINLINE_PARAMETER_KEY

public static final String MAINLINE_PARAMETER_KEY

常量值: "mainline-param"

MODULE_CHECKER_POST

public static final String MODULE_CHECKER_POST

常量值: "PostModuleChecker"

MODULE_CHECKER_PRE

public static final String MODULE_CHECKER_PRE

常量值: "PreModuleChecker"

MODULE_END_TIME

public static final String MODULE_END_TIME

常量值: “MODULE_END_TIME”

MODULE_METADATA_EXCLUDE_FILTER

public static final String MODULE_METADATA_EXCLUDE_FILTER

常量值: “module-metadata-exclude-filter”

MODULE_METADATA_INCLUDE_FILTER

public static final String MODULE_METADATA_INCLUDE_FILTER

常量值: “module-metadata-include-filter”

MODULE_START_TIME

public static final String MODULE_START_TIME

常量值: "MODULE_START_TIME"

PARAMETER_KEY

public static final String PARAMETER_KEY

常量值: “parameter”

PREPARER_WHITELIST

public static final String PREPARER_WHITELIST

常量值: “preparer-whitelist”

PRIMARY_ABI_RUN

public static final String PRIMARY_ABI_RUN

常量值: "primary-abi-only"

RANDOM_SEED

public static final String RANDOM_SEED

常量值: "random-seed"

RUNNER_WHITELIST

public static final String RUNNER_WHITELIST

常量值: "runner-whitelist"

SKIP_HOST_ARCH_CHECK

public static final String SKIP_HOST_ARCH_CHECK

常量值: “skip-host-arch-check”

SKIP_STAGING_ARTIFACTS

public static final String SKIP_STAGING_ARTIFACTS

常量值: “skip-staging-artifacts”

SKIP_SYSTEM_STATUS_CHECKER

public static final String SKIP_SYSTEM_STATUS_CHECKER

常量值: "skip-system-status-check"

STAGE_MODULE_ARTIFACTS

public static final String STAGE_MODULE_ARTIFACTS

常量值: “stage-module-artifacts”

TEST_TYPE_KEY

public static final String TEST_TYPE_KEY

常量值: “test-type”

TEST_TYPE_VALUE_PERFORMANCE

public static final String TEST_TYPE_VALUE_PERFORMANCE

常量值: "performance"

TOKEN_KEY

public static final String TOKEN_KEY

常量值: "token"

字段

protected boolean mEnableResolveSymlinks

mRecoverDeviceByCvd

protected boolean mRecoverDeviceByCvd

公共构造函数

ITestSuite

public ITestSuite ()

公共方法

addModuleMetadataExcludeFilters

public void addModuleMetadataExcludeFilters (MultiMap<String, String> filters)

参数
filters MultiMap

addModuleMetadataIncludeFilters

public void addModuleMetadataIncludeFilters (MultiMap<String, String> filters)

参数
filters MultiMap

cleanUpSuiteSetup

public void cleanUpSuiteSetup ()

有机会清理在套件设置期间需要但运行测试不需要的所有内容。

filterByConfigMetadata

public boolean filterByConfigMetadata (IConfiguration config, 
                MultiMap<String, String> include, 
                MultiMap<String, String> exclude)

将元数据过滤条件应用于配置,并查看配置是否应运行。

参数
config IConfiguration:要评估的 IConfiguration

include MultiMap:元数据包含过滤条件

exclude MultiMap:元数据排除过滤器

返回
boolean 如果模块应运行,则为 True;否则为 False。

getAbis

public  getAbis (ITestDevice device)

获取兼容性测试 AbiUtils.getAbisSupportedByCompatibility() 和被测设备均支持的 ABI 集。

参数
device ITestDevice

返回
要运行测试的 ABI 集

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

getAbisForBuildTargetArchFromSuite

public static  getAbisForBuildTargetArchFromSuite ()

从 TestSuiteInfo 返回可能的 ABI。

返回

getBuildInfo

public IBuildInfo getBuildInfo ()

ITestSuite 的实现可能需要 build 信息来加载测试。

返回
IBuildInfo

getConfiguration

public final IConfiguration getConfiguration ()

返回调用 IConfiguration

返回
IConfiguration

getCurrentTestLogger

public ITestLogger getCurrentTestLogger ()

返回
ITestLogger

getDevice

public ITestDevice getDevice ()

获取被测设备。

返回
ITestDevice ITestDevice

getDirectModule

public ModuleDefinition getDirectModule ()

返回要直接执行的 ModuleDefinition,如果没有(当 ITestSuite 尚未分片时),则返回 null。

返回
ModuleDefinition

getIntraModuleSharding

public boolean getIntraModuleSharding ()

返回
boolean

getInvocationContext

public IInvocationContext getInvocationContext ()

返回调用上下文。

返回
IInvocationContext

getModuleMetadataIncludeFilters

public MultiMap<String, String> getModuleMetadataIncludeFilters ()

返回
MultiMap<String, String>

getMultiDeviceStrategy

public ITestSuite.MultiDeviceModuleStrategy getMultiDeviceStrategy ()

返回
ITestSuite.MultiDeviceModuleStrategy

getRequestedAbi

public final String getRequestedAbi ()

返回通过选项 -a 或 --abi 请求的 ABI。

返回
String

getRequiredTokens

public  getRequiredTokens (TestInformation testInfo)

返回测试所需的令牌列表。如果不支持令牌,则返回 null。

参数
testInfo TestInformation

返回

getRuntimeHint

public long getRuntimeHint ()

以毫秒为单位返回测试的预期运行时长。 该时间用于对分片执行进行负载均衡

返回
long

getTestsDir

public File getTestsDir ()

返回
File

isRemoveModuleBuffering

public boolean isRemoveModuleBuffering ()

返回
boolean

isSplitting

public boolean isSplitting ()

如果我们目前处于 IShardableTest.split(int) 中,则返回 true。

返回
boolean

loadTests

public abstract  loadTests ()

用于加载将要运行的测试配置的抽象方法。每项测试都由一个 IConfiguration 和一个唯一名称定义,测试结果将通过该名称进行报告。

返回

reportNotExecuted

public void reportNotExecuted (ITestInvocationListener listener, 
                String message)

向提供的主监听器报告未执行的测试。应报告为失败,并显示 NOT_EXECUTED_FAILURE 消息。

参数
listener ITestInvocationListener:用于报告未执行结果的主要监听器。

message String:要与未执行的失败相关联的消息。

reportNotExecuted

public void reportNotExecuted (ITestInvocationListener listener)

向提供的主监听器报告未执行的测试。应报告为失败,并显示 NOT_EXECUTED_FAILURE 消息。

参数
listener ITestInvocationListener:用于报告未执行结果的主要监听器。

得分

public final void run (TestInformation testInfo, 
                ITestInvocationListener listener)

loadTests() 加载的所有测试的通用运行方法。

参数
testInfo TestInformation:包含用于运行测试的实用信息的 TestInformation 对象。

listener ITestInvocationListener:测试结果的 ITestInvocationListener

抛出
DeviceNotAvailableException

setAbiName

public void setAbiName (String abiName)

设置 mAbiName 的值

参数
abiName String

setAbis

public final void setAbis ( abis)

参数
abis

setBuild

public void setBuild (IBuildInfo buildInfo)

参数
buildInfo IBuildInfo

setCollectTestsOnly

public void setCollectTestsOnly (boolean shouldCollectTest)

以仅收集器模式运行测试套件,这要求所有子测试也实现此接口。

setConfiguration

public void setConfiguration (IConfiguration configuration)

注入正在使用的 IConfiguration

参数
configuration IConfiguration

setDevice

public void setDevice (ITestDevice device)

注入被测设备。

参数
device ITestDevice:要使用的 ITestDevice

setDirectModule

public void setDirectModule (ModuleDefinition module)

参数
module ModuleDefinition

setIntraModuleSharding

public void setIntraModuleSharding (boolean intraModuleSharding)

参数
intraModuleSharding boolean

setInvocationContext

public void setInvocationContext (IInvocationContext invocationContext)

参数
invocationContext IInvocationContext

setMetricCollectors

public void setMetricCollectors ( collectors)

设置为测试运行定义的 IMetricCollector 列表。

参数
collectors

setMultiDeviceStrategy

public void setMultiDeviceStrategy (ITestSuite.MultiDeviceModuleStrategy strategy)

参数
strategy ITestSuite.MultiDeviceModuleStrategy

setPrimaryAbiRun

public void setPrimaryAbiRun (boolean primaryAbiRun)

设置 mPrimaryAbiRun 的值

参数
primaryAbiRun boolean

setShouldMakeDynamicModule

public void setShouldMakeDynamicModule (boolean dynamicModule)

在进行分布式分片时,我们不能有在池中共享测试的 ModuleDefinition,否则模块内分片将无法正常运行,因此我们允许停用它。

参数
dynamicModule boolean

setSkipContext

public void setSkipContext (SkipContext skipContext)

参数
skipContext SkipContext

setSystemStatusChecker

public void setSystemStatusChecker ( systemCheckers)

根据测试的配置设置 ISystemStatusChecker

参数
systemCheckers

setTestLogger

public void setTestLogger (ITestLogger testLogger)

注入 ITestLogger 实例

参数
testLogger ITestLogger

分解

public  split (Integer shardCountHint, 
                TestInformation testInfo)

split(int) 的替代版本,还提供了一个 TestInformation,其中包含创建分片的父级的早期信息。如果需要在分片期间访问设备或 build 信息等内容,此方法会非常有用。

参数
shardCountHint Integer:尝试的分片数量。

testInfo TestInformation:父级 TestInformation

返回
要单独执行的子测试集合,如果测试目前不可分片,则为 null

受保护的方法

createModuleListeners

protected  createModuleListeners ()

返回适用于 ModuleListener 级别的 ITestInvocationListener 列表。这些监听器将针对每个模块重复使用,不会重新实例化,因此不应假设存在内部状态。

返回

filterByRunnerType

protected boolean filterByRunnerType (IConfiguration config, 
                 allowedRunners)

应用 Runner 白名单过滤,移除未列入白名单的任何 Runner。如果某个配置有多个 runner,即使移除部分 runner,该配置仍会运行。

参数
config IConfiguration:要评估的 IConfiguration

allowedRunners :当前的 runner 许可名单。

返回
boolean 如果允许配置模块运行,则为 true;否则为 false。

getAbisForBuildTargetArch

protected  getAbisForBuildTargetArch ()

返回主机 build 目标架构支持的 ABI。公开以供测试。

返回

getHostAbis

protected  getHostAbis ()

返回宿主机器的 ABI。

返回

setPrioritizeHostConfig

protected void setPrioritizeHostConfig (boolean prioritizeHostConfig)

设置选项 prioritize-host-config。

参数
prioritizeHostConfig boolean:如果为 true,则优先考虑宿主配置,即尽可能运行宿主测试。

shouldModuleRun

protected boolean shouldModuleRun (ModuleDefinition module)

参数
module ModuleDefinition

返回
boolean