ITestsSuite

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

摘要

常數

String ABI_OPTION

String ACTIVE_MAINLINE_PARAMETER_KEY

String BUILD_ATTRIBUTE_FLAG_OVERRIDES_KEY

String ENABLE_RESOLVE_SYM_LINKS

String MAINLINE_PARAMETER_KEY

String MODULE_CHECKER_POST

String MODULE_CHECKER_PRE

String MODULE_END_TIME

String MODULE_METADATA_EXCLUDE_FILTER

String MODULE_METADATA_INCLUDE_FILTER

String MODULE_START_TIME

String PARAMETER_KEY

String PREPARER_WHITELIST

String PRIMARY_ABI_RUN

String RANDOM_SEED

String RUNNER_WHITELIST

String SKIP_HOST_ARCH_CHECK

String SKIP_STAGING_ARTIFACTS

String SKIP_SYSTEM_STATUS_CHECKER

String STAGE_MODULE_ARTIFACTS

String TEST_TYPE_KEY

String TEST_TYPE_VALUE_PERFORMANCE

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,如果尚未執行任何項目 (當 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 isRemoveModuleBuffering()
boolean isSplitting()

如果目前處於 IShardableTest.split(int),則傳回 true。

abstract loadTests()

Abstract method to load the tests configuration that will be run.

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)

套用 Runner 許可清單篩選條件,移除所有未列入許可清單的 Runner。

getAbisForBuildTargetArch()

Return the abis supported by the Host build target architecture.

getHostAbis()

Returns the host machine abis.

void setPrioritizeHostConfig(boolean prioritizeHostConfig)

設定選項 prioritize-host-config。

boolean shouldModuleRun(ModuleDefinition module)

常數

ABI_OPTION

public static final String ABI_OPTION

常數值: "abi"

ACTIVE_MAINLINE_PARAMETER_KEY

public static final String ACTIVE_MAINLINE_PARAMETER_KEY

常數值: "active-mainline-parameter"

BUILD_ATTRIBUTE_FLAG_OVERRIDES_KEY

public static final String BUILD_ATTRIBUTE_FLAG_OVERRIDES_KEY

常數值: "flag-overrides"

public static final String ENABLE_RESOLVE_SYM_LINKS

常數值: "enable-resolve-sym-links"

MAINLINE_PARAMETER_KEY

public static final String MAINLINE_PARAMETER_KEY

常數值: "mainline-param"

MODULE_CHECKER_POST

public static final String MODULE_CHECKER_POST

常數值: "PostModuleChecker"

MODULE_CHECKER_PRE

public static final String MODULE_CHECKER_PRE

常數值: "PreModuleChecker"

MODULE_END_TIME

public static final String MODULE_END_TIME

常數值: "MODULE_END_TIME"

MODULE_METADATA_EXCLUDE_FILTER

public static final String MODULE_METADATA_EXCLUDE_FILTER

常數值: "module-metadata-exclude-filter"

MODULE_METADATA_INCLUDE_FILTER

public static final String MODULE_METADATA_INCLUDE_FILTER

常數值: "module-metadata-include-filter"

MODULE_START_TIME

public static final String MODULE_START_TIME

常數值: "MODULE_START_TIME"

PARAMETER_KEY

public static final String PARAMETER_KEY

常數值: "parameter"

PREPARER_WHITELIST

public static final String PREPARER_WHITELIST

常數值: "preparer-whitelist"

PRIMARY_ABI_RUN

public static final String PRIMARY_ABI_RUN

常數值: "primary-abi-only"

RANDOM_SEED

public static final String RANDOM_SEED

常數值: "random-seed"

RUNNER_WHITELIST

public static final String RUNNER_WHITELIST

常數值: "runner-whitelist"

SKIP_HOST_ARCH_CHECK

public static final String SKIP_HOST_ARCH_CHECK

常數值: "skip-host-arch-check"

SKIP_STAGING_ARTIFACTS

public static final String SKIP_STAGING_ARTIFACTS

常數值: "skip-staging-artifacts"

SKIP_SYSTEM_STATUS_CHECKER

public static final String SKIP_SYSTEM_STATUS_CHECKER

常數值: "skip-system-status-check"

STAGE_MODULE_ARTIFACTS

public static final String STAGE_MODULE_ARTIFACTS

常數值: "stage-module-artifacts"

TEST_TYPE_KEY

public static final String TEST_TYPE_KEY

常數值: "test-type"

TEST_TYPE_VALUE_PERFORMANCE

public static final String TEST_TYPE_VALUE_PERFORMANCE

常數值: "performance"

TOKEN_KEY

public static final String TOKEN_KEY

常數值: "token"

欄位

protected boolean mEnableResolveSymlinks

mRecoverDeviceByCvd

protected boolean mRecoverDeviceByCvd

公用建構函式

ITestsSuite

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,如果尚未執行任何動作 (當 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)

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

參數
testInfo TestInformation

傳回

getRuntimeHint

public long getRuntimeHint ()

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

傳回
long

getTestsDir

public File getTestsDir ()

傳回
File

isRemoveModuleBuffering

public boolean isRemoveModuleBuffering ()

傳回
boolean

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:包含執行測試的實用資訊的 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:嘗試的 Shard 數量。

testInfo TestInformation:父項 TestInformation

傳回
要個別執行的子測試集合,或測試目前無法分片時的 null

受保護的方法

createModuleListeners

protected  createModuleListeners ()

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

傳回

filterByRunnerType

protected boolean filterByRunnerType (IConfiguration config, 
                 allowedRunners)

套用 Runner 許可清單篩選條件,移除所有未列入許可清單的 Runner。如果設定有多個執行者,系統可能會移除部分執行者,但設定仍會執行。

參數
config IConfiguration:要評估的 IConfiguration

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

傳回
boolean 如果允許執行設定模組,則為 True,否則為 False。

getAbisForBuildTargetArch

protected  getAbisForBuildTargetArch ()

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

傳回

getHostAbis

protected  getHostAbis ()

傳回主機的 ABI。

傳回

setPrioritizeHostConfig

protected void setPrioritizeHostConfig (boolean prioritizeHostConfig)

設定優先主機設定選項。

參數
prioritizeHostConfig boolean:設為 true 可優先處理主機設定,也就是盡可能執行主機測試。

shouldModuleRun

protected boolean shouldModuleRun (ModuleDefinition module)

參數
module ModuleDefinition

傳回
boolean