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() 方法定义测试列表。

摘要

字段

public static final String ABI_OPTION

public static final String ACTIVE_MAINLINE_PARAMETER_KEY

public static final String BUILD_ATTRIBUTE_FLAG_OVERRIDES_KEY

public static final String ENABLE_RESOLVE_SYM_LINKS

public static final String MAINLINE_PARAMETER_KEY

public static final String MODULE_CHECKER_POST

public static final String MODULE_CHECKER_PRE

public static final String MODULE_END_TIME

public static final String MODULE_METADATA_EXCLUDE_FILTER

public static final String MODULE_METADATA_INCLUDE_FILTER

public static final String MODULE_START_TIME

public static final String PARAMETER_KEY

public static final String PREPARER_WHITELIST

public static final String PRIMARY_ABI_RUN

public static final String RANDOM_SEED

public static final String RUNNER_WHITELIST

public static final String SKIP_HOST_ARCH_CHECK

public static final String SKIP_STAGING_ARTIFACTS

public static final String SKIP_SYSTEM_STATUS_CHECKER

public static final String STAGE_MODULE_ARTIFACTS

public static final String TEST_TYPE_KEY

public static final String TEST_TYPE_VALUE_PERFORMANCE

public static final 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 返回可能的 abis。

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

在进行分布式分片时,我们不能将模块定义共享到池中,否则模块内分片将不起作用,因此我们允许将其停用。

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)

应用运行程序白名单过滤条件,移除未列入白名单的所有运行程序。

getAbisForBuildTargetArch()

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

getHostAbis()

返回主机 abis。

boolean shouldModuleRun(ModuleDefinition module)

字段

ABI_OPTION

public static final String ABI_OPTION

ACTIVE_MAINLINE_PARAMETER_KEY

public static final String ACTIVE_MAINLINE_PARAMETER_KEY

BUILD_ATTRIBUTE_FLAG_OVERRIDES_KEY

public static final String BUILD_ATTRIBUTE_FLAG_OVERRIDES_KEY

public static final String ENABLE_RESOLVE_SYM_LINKS

MAINLINE_PARAMETER_KEY

public static final String MAINLINE_PARAMETER_KEY

MODULE_CHECKER_POST

public static final String MODULE_CHECKER_POST

MODULE_CHECKER_PRE

public static final String MODULE_CHECKER_PRE

MODULE_END_TIME

public static final String MODULE_END_TIME

MODULE_METADATA_EXCLUDE_FILTER

public static final String MODULE_METADATA_EXCLUDE_FILTER

MODULE_METADATA_INCLUDE_FILTER

public static final String MODULE_METADATA_INCLUDE_FILTER

MODULE_START_TIME

public static final String MODULE_START_TIME

PARAMETER_KEY

public static final String PARAMETER_KEY

PREPARER_WHITELIST

public static final String PREPARER_WHITELIST

PRIMARY_ABI_RUN

public static final String PRIMARY_ABI_RUN

RANDOM_SEED

public static final String RANDOM_SEED

RUNNER_白名单

public static final String RUNNER_WHITELIST

SKIP_HOST_ARCH_CHECK

public static final String SKIP_HOST_ARCH_CHECK

SKIP_STAGING_ARTIFACTS

public static final String SKIP_STAGING_ARTIFACTS

SKIP_SYSTEM_STATUS_CHECKER

public static final String SKIP_SYSTEM_STATUS_CHECKER

STAGE_MODULE_ARTIFACTS

public static final String STAGE_MODULE_ARTIFACTS

TEST_TYPE_KEY

public static final String TEST_TYPE_KEY

TEST_TYPE_VALUE_PERFORMANCE

public static final String TEST_TYPE_VALUE_PERFORMANCE

TOKEN_KEY

public static final String TOKEN_KEY

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 返回可能的 abis。

返回

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

正在拆分

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,其中包含创建分片的父级的早期信息。如果需要在分片期间访问设备或版本信息等内容,则这会非常有用。

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

testInfo TestInformation:父级 TestInformation

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

受保护的方法

createModuleListeners

protected  createModuleListeners ()

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

返回

过滤依据类型

protected boolean filterByRunnerType (IConfiguration config, 
                 allowedRunners)

应用运行程序白名单过滤条件,移除未列入白名单的所有运行程序。如果配置有多个运行器,系统可能会移除其中一些,但配置仍会运行。

参数
config IConfiguration:要评估的 IConfiguration

allowedRunners :当前的运行程序白名单。

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

getAbisForBuildTargetArch

protected  getAbisForBuildTargetArch ()

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

返回

getHostAbis

protected  getHostAbis ()

返回主机 abis。

返回

shouldModuleRun

protected boolean shouldModuleRun (ModuleDefinition module)

参数
module ModuleDefinition

返回
boolean