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


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

IBuildInfo getBuildInfo()

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

final IConfiguration getConfiguration()

傳回叫用 IConfiguration

ITestLogger getCurrentTestLogger()
ITestDevice getDevice()

取得測試中的裝置。

ModuleDefinition getDirectModule()

傳回要直接執行的 ModuleDefinition,如果尚未分割,則傳回空值 (如果 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 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()

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

getHostAbis()

傳回主機機器 abi。

boolean shouldModuleRun(ModuleDefinition module)

欄位

ABI_OPTION

public static final String ABI_OPTION

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

參數

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

略過

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

mRecoveryDeviceByCvd

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

ClearUpSuite 設定

public void cleanUpSuiteSetup ()

可以清除設定套件期間的一切必要資訊,不過執行測試並非必要條件。

篩選 ByConfigMetadata

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,可能需要建構資訊才能載入測試。

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

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

loadTest

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

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

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

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

傳回

getHostAbis

protected  getHostAbis ()

傳回主機機器 abi。

傳回

shouldModuleRun

protected boolean shouldModuleRun (ModuleDefinition module)

參數
module ModuleDefinition

傳回
boolean