ITestSuite

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

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

IBuildInfo getBuildInfo()

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

final IConfiguration getConfiguration()

返回调用 IConfiguration

ITestLogger getCurrentTestLogger()
ITestDevice getDevice()

获取被测设备。

ModuleDefinition getDirectModule()

返回要直接执行的 ModuleDefinition;如果尚无任何分片,则返回 null(如果 ITestSuite 尚未分片)。

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

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

运行白名单

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_性能

public static final String TEST_TYPE_VALUE_PERFORMANCE

TOKEN_KEY

public static final String TOKEN_KEY

protected boolean mEnableResolveSymlinks

mRestoreDeviceByCvd

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

cleanUpSuite 设置

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

loadTest

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

setMetricCollector

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)

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

参数
dynamicModule boolean

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