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


用於執行 Test Suite 的抽象類別。這個類別提供套裝軟體的執行方式基礎。每項實作都能透過 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 傳回可能的 ABI。

IBuildInfo getBuildInfo()

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

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)

進行分散式區隔時,我們無法讓 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)

套用執行器許可清單篩選,移除未加入許可清單的所有執行器。

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

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

參數

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_WHITELIST

public static final String RUNNER_WHITELIST

SKIP_HOST_ARCH_CHECK

public static final String SKIP_HOST_ARCH_CHECK

略過圖片

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 傳回可能的 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,如果沒有則傳回 null (當 ITestSuite 尚未分割時)。

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

傳回測試所需的權杖清單。如果沒有憑證支援,則傳回空值。

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

設定 AbiName

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

set shouldMakeDynamicModule

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 清單。這些事件監聽器會用於每個模組,但不會重新例項化,因此不應假設內部狀態。

傳回

filterByRunnerType

protected boolean filterByRunnerType (IConfiguration config, 
                 allowedRunners)

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

參數
config IConfiguration:要評估的 IConfiguration

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

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

getAbisForBuildTargetArch

protected  getAbisForBuildTargetArch ()

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

傳回

getHostAbis

protected  getHostAbis ()

傳回主機 abis。

傳回

shouldModuleRun

protected boolean shouldModuleRun (ModuleDefinition module)

參數
module ModuleDefinition

傳回
boolean