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

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)
final void enableRebootBeforeTest()

將 reboot-before-test 設為 true。

getAbis(ITestDevice device)

取得相容性測試 AbiUtils.getAbisSupportedByCompatibility() 和測試中的裝置支援的 ABI 集合。

static getAbisForBuildTargetArchFromSuite()

從 TestSuiteInfo 傳回可能的 ABI。

IBuildInfo getBuildInfo()

實作 ITestSuite 時,可能需要建構資訊才能載入測試。

final IConfiguration getConfiguration()

傳回叫用 IConfiguration

ITestLogger getCurrentTestLogger()
ITestDevice getDevice()

取得測試中的裝置。

ModuleDefinition getDirectModule()

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

IInvocationContext getInvocationContext()

傳回叫用內容。

final String getRequestedAbi()

傳回使用 -a 或 --abi 選項要求的 ABI。

getRequiredTokens()
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 setInvocationContext(IInvocationContext invocationContext)

void setInvocationInjector(Injector injector)

從叫用作業取得目前的 Guice Injector

void setMetricCollectors( collectors)

設定為測試執行作業定義的 IMetricCollector 清單。

void setPrimaryAbiRun(boolean primaryAbiRun)

設定 mPrimaryAbiRun 的值

void setShouldMakeDynamicModule(boolean dynamicModule)

進行分散式區隔時,我們無法讓 ModuleDefinition 在集區中共用測試,否則模組內區隔功能將無法運作,因此我們允許停用該功能。

void setSystemStatusChecker( systemCheckers)

從測試的設定中設定 ISystemStatusChecker

void setTestLogger(ITestLogger testLogger)

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)

套用執行緒許可清單篩選條件,移除未加入許可清單的執行緒。

getAbisForBuildTargetArch()

傳回主機建構目標架構支援的 ABI。

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

RANDOM_SEED

public static final String RANDOM_SEED

REBOOT_BEFORE_TEST

public static final String REBOOT_BEFORE_TEST

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

公用建構函式

ITestSuite

public ITestSuite ()

公用方法

addModuleMetadataExcludeFilters

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

參數
filters MultiMap

addModuleMetadataIncludeFilters

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

參數
filters MultiMap

enableRebootBeforeTest

public final void enableRebootBeforeTest ()

將 reboot-before-test 設為 true。

getAbis

public  getAbis (ITestDevice device)

取得相容性測試 AbiUtils.getAbisSupportedByCompatibility() 和測試中的裝置皆支援的 ABI 集合。

參數
device ITestDevice

傳回
要執行測試的 ABI 組合

擲回
DeviceNotAvailableException

getAbisForBuildTargetArchFromSuite

public static  getAbisForBuildTargetArchFromSuite ()

從 TestSuiteInfo 傳回可能的 ABI。

傳回

getBuildInfo

public IBuildInfo getBuildInfo ()

實作 ITestSuite 時,可能需要建構資訊才能載入測試。

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

getInvocationContext

public IInvocationContext getInvocationContext ()

傳回叫用內容。

傳回
IInvocationContext

getRequestedAbi

public final String getRequestedAbi ()

傳回使用 -a 或 --abi 選項要求的 ABI。

傳回
String

getRequiredTokens

public  getRequiredTokens ()

傳回

getRuntimeHint

public long getRuntimeHint ()

以毫秒為單位,傳回測試的預期執行時間。這段時間會用於負載平衡分割執行作業。

傳回
long

getTestsDir

public File getTestsDir ()

傳回
File

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

listener 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

setInvocationContext

public void setInvocationContext (IInvocationContext invocationContext)

參數
invocationContext IInvocationContext

setInvocationInjector

public void setInvocationInjector (Injector injector)

從叫用作業取得目前的 Guice Injector。這應該可讓我們繼續模組的物件插入作業。

參數
injector Injector

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

setSystemStatusChecker

public void setSystemStatusChecker ( systemCheckers)

從測試設定中設定 ISystemStatusChecker

參數
systemCheckers

setTestLogger

public void setTestLogger (ITestLogger testLogger)

參數
testLogger ITestLogger

拆分

public  split (Integer shardCountHint, 
                TestInformation testInfo)

split(int) 的替代版本,也提供 TestInformation,其中包含建立分片的父項的早期資訊。如果需要在分割期間存取裝置或版本資訊,這項功能就很實用。

參數
shardCountHint Integer:嘗試的分割區數量。

testInfo TestInformation:父項 TestInformation

傳回
要個別執行的子測試集合,或如果測試目前無法分割,則為 null

受保護的方法

createModuleListeners

protected  createModuleListeners ()

傳回適用於 ModuleListener 層級的 ITestInvocationListener 清單。這些事件監聽器會用於每個模組,但不會重新例項化,因此不應假設內部狀態。

傳回

filterByConfigMetadata

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)

套用「Runner」許可清單篩選條件,移除未加入許可清單的任何 runner。如果設定包含多個執行者,系統可能會移除其中部分執行者,但設定仍會執行。

參數
config IConfiguration:要評估的 IConfiguration

allowedRunners :目前的執行器許可清單。

傳回
boolean 如果允許執行設定模組,則傳回「是」;否則傳回「否」。

getAbisForBuildTargetArch

protected  getAbisForBuildTargetArch ()

傳回主機建構目標架構支援的 ABI。已公開供測試。

傳回

getHostAbis

protected  getHostAbis ()

傳回主機 abis。

傳回

shouldModuleRun

protected boolean shouldModuleRun (ModuleDefinition module)

參數
module ModuleDefinition

傳回
boolean