測試套件

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()方法定義測試列表。

概括

嵌套類

enum ITestSuite.MultiDeviceModuleStrategy

字段

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_METADATA_EXCLUDE_FILTER

public static final String MODULE_METADATA_INCLUDE_FILTER

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_SYSTEM_STATUS_CHECKER

public static final String TOKEN_KEY

公共構造函數

ITestSuite ()

公共方法

void addModuleMetadataExcludeFilters ( MultiMap <String, String> filters)
void addModuleMetadataIncludeFilters ( MultiMap <String, String> filters)
getAbis ( ITestDevice device)

獲取兼容性測試AbiUtils.getAbisSupportedByCompatibility()和被測設備支持的 ABI 集。

static getAbisForBuildTargetArchFromSuite ()

從 TestSuiteInfo 返回可能的 abis。

IBuildInfo getBuildInfo ()

ITestSuite的實現可能需要構建信息來加載測試。

final IConfiguration getConfiguration ()

返回調用IConfiguration

ITestLogger getCurrentTestLogger ()
ITestDevice getDevice ()

獲取被測設備。

ModuleDefinition getDirectModule ()

返回要直接執行的ModuleDefinition ,如果還沒有(當 ITestSuite 尚未分片時),則返回 null。

IInvocationContext getInvocationContext ()

返回調用上下文。

MultiMap <String, String> getModuleMetadataIncludeFilters ()
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) setAbis ( abis)
void setBuild ( IBuildInfo buildInfo)

void setCollectTestsOnly (boolean shouldCollectTest)

在僅收集器模式下運行測試套件,這需要所有子測試也實現此接口。

void setConfiguration ( IConfiguration configuration)

注入正在使用的IConfiguration

void setDevice ( ITestDevice device)

注入被測設備。

void setDirectModule ( ModuleDefinition module)
void setInvocationContext ( IInvocationContext invocationContext)

void setMetricCollectors ( collectors) setMetricCollectors ( collectors)

設置為測試運行定義的IMetricCollector列表。

void setPrimaryAbiRun (boolean primaryAbiRun)

設置 mPrimaryAbiRun 的值

void setShouldMakeDynamicModule (boolean dynamicModule)

在進行分佈式分片時,我們不能讓 ModuleDefinition 在池中共享測試,否則模塊內分片將不起作用,因此我們允許禁用它。

void setSystemStatusChecker ( systemCheckers) setSystemStatusChecker ( systemCheckers)

從測試的配置中設置ISystemStatusChecker

void setTestLogger ( ITestLogger testLogger)

注入ITestLogger實例

split (Integer shardCountHint, TestInformation testInfo)

split(int)的替代版本,它還提供了一個TestInformation ,其中包含來自創建分片的父級的早期信息。

受保護的方法

createModuleListeners ()

返回適用於ModuleListener級別的ITestInvocationListener列表。

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

將元數據過濾器應用於配置並查看配置是否應該運行。

boolean filterByRunnerType ( IConfiguration config, allowedRunners) filterByRunnerType ( IConfiguration config, allowedRunners)

應用跑步者白名單過濾,刪除任何未列入白名單的跑步者。

getAbisForBuildTargetArch ()

返回 Host 構建目標架構支持的 abis。

getHostAbis ()

返回主機 abis。

void setMultiDeviceStrategy ( ITestSuite.MultiDeviceModuleStrategy strategy)
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_METADATA_EXCLUDE_FILTER

public static final String MODULE_METADATA_EXCLUDE_FILTER

MODULE_METADATA_INCLUDE_FILTER

public static final String MODULE_METADATA_INCLUDE_FILTER

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

隨機種子

public static final String RANDOM_SEED

RUNNER_WHITELIST

public static final String RUNNER_WHITELIST

SKIP_HOST_ARCH_CHECK

public static final String SKIP_HOST_ARCH_CHECK

SKIP_SYSTEM_STATUS_CHECKER

public static final String SKIP_SYSTEM_STATUS_CHECKER

TOKEN_KEY

public static final String TOKEN_KEY

公共構造函數

測試套件

public ITestSuite ()

公共方法

addModuleMetadataExcludeFilters

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

參數
filters MultiMap

addModuleMetadataIncludeFilters

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

參數
filters MultiMap

獲取阿比斯

public  getAbis (ITestDevice device)

獲取兼容性測試AbiUtils.getAbisSupportedByCompatibility()和被測設備支持的 ABI 集。

參數
device ITestDevice

退貨
運行測試的 ABI 集

投擲
DeviceNotAvailableException

getAbisForBuildTargetArchFromSuite

public static  getAbisForBuildTargetArchFromSuite ()

從 TestSuiteInfo 返回可能的 abis。

退貨

獲取構建信息

public IBuildInfo getBuildInfo ()

ITestSuite的實現可能需要構建信息來加載測試。

退貨
IBuildInfo

獲取配置

public final IConfiguration getConfiguration ()

返回調用IConfiguration

退貨
IConfiguration

獲取當前測試記錄器

public ITestLogger getCurrentTestLogger ()

退貨
ITestLogger

獲取設備

public ITestDevice getDevice ()

獲取被測設備。

退貨
ITestDevice ITestDevice

獲取直接模塊

public ModuleDefinition getDirectModule ()

返回要直接執行的ModuleDefinition ,如果還沒有(當 ITestSuite 尚未分片時),則返回 null。

退貨
ModuleDefinition

獲取調用上下文

public IInvocationContext getInvocationContext ()

返回調用上下文。

退貨
IInvocationContext

getModuleMetadataIncludeFilters

public MultiMap<String, String> getModuleMetadataIncludeFilters ()

退貨
MultiMap <String, String>

getRequestedAbi

public final String getRequestedAbi ()

返回使用選項 -a 或 --abi 請求的 abi。

退貨
String

getRequiredTokens

public  getRequiredTokens (TestInformation testInfo)

返回測試所需令牌的列表。如果不支持令牌,則返回 null。

參數
testInfo TestInformation

退貨

獲取運行時提示

public long getRuntimeHint ()

返回測試的預期運行時間(以毫秒為單位)。時間用於負載均衡分片執行

退貨
long

獲取測試目錄

public File getTestsDir ()

退貨
File

是拆分

public boolean isSplitting ()

如果我們當前在IShardableTest.split(int)中,則返回 true。

退貨
boolean

負載測試

public abstract  loadTests ()

加載將要運行的測試配置的抽象方法。每個測試都由IConfiguration和報告結果的唯一名稱定義。

退貨

報告未執行

public void reportNotExecuted (ITestInvocationListener listener, 
                String message)

向提供的主要偵聽器報告未執行的測試。應該使用NOT_EXECUTED_FAILURE消息將它們報告為失敗。

參數
listener ITestInvocationListener :報告未執行結果的主要偵聽器。

message String : 與未執行失敗相關聯的消息。

報告未執行

public void reportNotExecuted (ITestInvocationListener listener)

向提供的主要偵聽器報告未執行的測試。應該使用NOT_EXECUTED_FAILURE消息將它們報告為失敗。

參數
listener ITestInvocationListener :報告未執行結果的主要偵聽器。

public final void run (TestInformation testInfo, 
                ITestInvocationListener listener)

loadTests()加載的所有測試的通用運行方法。

參數
testInfo TestInformationTestInformation對象包含運行測試的有用信息。

listener ITestInvocationListener : 測試結果的ITestInvocationListener

投擲
DeviceNotAvailableException

設置AbiName

public void setAbiName (String abiName)

設置 mAbiName 的值

參數
abiName String

設置Abis

public final void setAbis ( abis)

參數
abis

設置構建

public void setBuild (IBuildInfo buildInfo)

參數
buildInfo IBuildInfo

setCollectTestsOnly

public void setCollectTestsOnly (boolean shouldCollectTest)

在僅收集器模式下運行測試套件,這需要所有子測試也實現此接口。

設置配置

public void setConfiguration (IConfiguration configuration)

注入正在使用的IConfiguration

參數
configuration IConfiguration

設置設備

public void setDevice (ITestDevice device)

注入被測設備。

參數
device ITestDevice :要使用的ITestDevice

設置直接模塊

public void setDirectModule (ModuleDefinition module)

參數
module ModuleDefinition

設置調用上下文

public void setInvocationContext (IInvocationContext invocationContext)

參數
invocationContext IInvocationContext

setMetricCollectors

public void setMetricCollectors ( collectors)

設置為測試運行定義的IMetricCollector列表。

參數
collectors

setPrimaryAbiRun

public void setPrimaryAbiRun (boolean primaryAbiRun)

設置 mPrimaryAbiRun 的值

參數
primaryAbiRun boolean

setShouldMakeDynamicModule

public void setShouldMakeDynamicModule (boolean dynamicModule)

在進行分佈式分片時,我們不能讓 ModuleDefinition 在池中共享測試,否則模塊內分片將不起作用,因此我們允許禁用它。

參數
dynamicModule boolean

設置系統狀態檢查器

public void setSystemStatusChecker ( systemCheckers)

從測試的配置中設置ISystemStatusChecker

參數
systemCheckers

設置測試記錄器

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 filterByConfigMetadata (IConfiguration config, 
                MultiMap<String, String> include, 
                MultiMap<String, String> exclude)

將元數據過濾器應用於配置並查看配置是否應該運行。

參數
config IConfiguration :正在評估的IConfiguration

include MultiMap :元數據包含過濾器

exclude MultiMap :元數據排除過濾器

退貨
boolean如果模塊應該運行則為真,否則為假。

filterByRunnerType

protected boolean filterByRunnerType (IConfiguration config, 
                 allowedRunners)

應用跑步者白名單過濾,刪除任何未列入白名單的跑步者。如果配置有多個運行器,則可能會刪除一些運行器,但配置仍將運行。

參數
config IConfiguration :正在評估的IConfiguration

allowedRunners :當前運行者白名單。

退貨
boolean如果允許配置模塊運行,則為 true,否則為 false。

getAbisForBuildTargetArch

protected  getAbisForBuildTargetArch ()

返回 Host 構建目標架構支持的 abis。暴露用於測試。

退貨

獲取HostAbis

protected  getHostAbis ()

返回主機 abis。

退貨

設置多設備策略

protected void setMultiDeviceStrategy (ITestSuite.MultiDeviceModuleStrategy strategy)

參數
strategy ITestSuite.MultiDeviceModuleStrategy

應該模塊運行

protected boolean shouldModuleRun (ModuleDefinition module)

參數
module ModuleDefinition

退貨
boolean