BaseHostJUnit4Test

public abstract class BaseHostJUnit4Test
extends Object implements IAbiReceiver, ITestInformationReceiver

java.lang.Object
   ↳ com.android.tradefed.testtype.junit4.BaseHostJUnit4Test


用于运行主机 JUnit4 型测试的基准测试类。此类支持从主机端安装、运行和清理插桩测试。此类与多种设备兼容。 应是从宿主端运行插桩测试的单一可信来源,以避免重复的实用程序和基类。

摘要

公共构造函数

BaseHostJUnit4Test()

公共方法

final void autoTearDown()

自动拆解所有已安装的 apk。

final IAbi getAbi()
final IBuildInfo getBuild()
final ITestDevice getDevice()
final IInvocationContext getInvocationContext()
final TestRunResult getLastDeviceRunResults()

返回最近一次运行 runDeviceTests 时生成的 TestRunResult

final getListDevices()
TestInformation getTestInformation()
boolean hasDeviceFeature(String feature)
final void installPackage(DeviceTestRunOptions options)

在设备上根据 DeviceTestRunOptions 安装 APK。

final void installPackage(String apkFileName, String... options)

在设备上根据名称安装 APK。

final void installPackage(ITestDevice device, String apkFileName, String... options)

在指定设备上根据名称安装 APK。

final void installPackageAsUser(ITestDevice device, String apkFileName, boolean grantPermission, int userId, String... options)

在给定设备上为特定用户安装指定名称的 apk。

final void installPackageAsUser(String apkFileName, boolean grantPermission, int userId, String... options)

为特定用户安装指定名称的 apk。

final boolean isPackageInstalled(String pkg)

检查设备上是否安装了指定名称的软件包

final boolean isPackageInstalled(ITestDevice device, String pkg)

检查设备上是否安装了指定名称的软件包

final boolean runDeviceTests(ITestDevice device, String pkgName, String testClassName, String testMethodName, Integer userId, Long testTimeoutMs)

用于运行已安装的插桩软件包的方法。

final boolean runDeviceTests(ITestDevice device, String pkgName, String testClassName, String testMethodName, Long testTimeoutMs, Long maxTimeToOutputMs, Long maxInstrumentationTimeoutMs)

用于运行已安装的插桩软件包的方法。

final boolean runDeviceTests(ITestDevice device, String runner, String pkgName, String testClassName, String testMethodName, Integer userId, Long testTimeoutMs, Long maxTimeToOutputMs, Long maxInstrumentationTimeoutMs, boolean checkResults, boolean isHiddenApiCheckDisabled, boolean isTestApiCheckDisabled, boolean isIsolatedStorageDisabled, boolean isWindowAnimationDisabled, instrumentationArgs, extraListeners)

用于运行已安装的插桩软件包的方法。

final boolean runDeviceTests(ITestDevice device, String pkgName, String testClassName, String testMethodName, Long testTimeoutMs)

用于运行已安装的插桩软件包的方法。

final boolean runDeviceTests(ITestDevice device, String runner, String pkgName, String testClassName, String testMethodName, Integer userId, Long testTimeoutMs, Long maxTimeToOutputMs, Long maxInstrumentationTimeoutMs, boolean checkResults, boolean isHiddenApiCheckDisabled, instrumentationArgs)

用于运行已安装的插桩软件包的方法。

final boolean runDeviceTests(String pkgName, String testClassName, String testMethodName)

用于运行已安装的插桩软件包的方法。

final boolean runDeviceTests(DeviceTestRunOptions options)

根据 DeviceTestRunOptions 中的信息运行插桩。

final boolean runDeviceTests(ITestDevice device, String runner, String pkgName, String testClassName, String testMethodName, Integer userId, Long testTimeoutMs, Long maxTimeToOutputMs, Long maxInstrumentationTimeoutMs, boolean checkResults, boolean isHiddenApiCheckDisabled, boolean isTestApiCheckDisabled, boolean isIsolatedStorageDisabled, boolean isWindowAnimationDisabled, boolean isRestartDisabled, instrumentationArgs, extraListeners)

用于运行已安装的插桩软件包的方法。

final boolean runDeviceTests(ITestDevice device, String pkgName, String testClassName, String testMethodName)

用于运行已安装的插桩软件包的方法。

final boolean runDeviceTests(String pkgName, String testClassName, Integer userId, Long testTimeoutMs)

用于运行已安装的插桩软件包的方法。

final boolean runDeviceTests(String pkgName, String testClassName)

用于运行已安装的插桩软件包的方法。

final boolean runDeviceTests(ITestDevice device, String runner, String pkgName, String testClassName, String testMethodName, Integer userId, Long testTimeoutMs, Long maxTimeToOutputMs, Long maxInstrumentationTimeoutMs, boolean checkResults, boolean isHiddenApiCheckDisabled, boolean isTestApiCheckDisabled, boolean isIsolatedStorageDisabled, instrumentationArgs, extraListeners)

用于运行已安装的插桩软件包的方法。

final boolean runDeviceTests(String pkgName, String testClassName, Long testTimeoutMs)

用于运行已安装的插桩软件包的方法。

final boolean runDeviceTests(String runner, String pkgName, String testClassName, String testMethodName)

用于运行已安装的插桩软件包的方法。

final void setAbi(IAbi abi)
final void setTestInformation(TestInformation testInformation)
final String uninstallPackage(String pkgName)

在设备上卸载软件包。

final String uninstallPackage(ITestDevice device, String pkgName)

在设备上卸载软件包

公共构造函数

BaseHostJUnit4Test

public BaseHostJUnit4Test ()

公共方法

autoTearDown

public final void autoTearDown ()

自动拆解所有已安装的 apk。这会从安装了这些 apk 的设备上卸载所有 apk。

抛出
DeviceNotAvailableException

getAbi

public final IAbi getAbi ()

返回
IAbi

getBuild

public final IBuildInfo getBuild ()

返回
IBuildInfo

getDevice

public final ITestDevice getDevice ()

返回
ITestDevice

getInvocationContext

public final IInvocationContext getInvocationContext ()

返回
IInvocationContext

getLastDeviceRunResults

public final TestRunResult getLastDeviceRunResults ()

返回最近一次运行 runDeviceTests 时生成的 TestRunResult。或者,如果没有可用结果,则为 null。

返回
TestRunResult

getListDevices

public final  getListDevices ()

返回

getTestInformation

public TestInformation getTestInformation ()

返回
TestInformation

hasDeviceFeature

public boolean hasDeviceFeature (String feature)

参数
feature String

返回
boolean

抛出
DeviceNotAvailableException

installPackage

public final void installPackage (DeviceTestRunOptions options)

在设备上安装基于 DeviceTestRunOptions 的 APK。系统会自动清理 APK。

参数
options DeviceTestRunOptions:软件包安装选项。

抛出
DeviceNotAvailableException
TargetSetupError

installPackage

public final void installPackage (String apkFileName, 
                String... options)

在设备上根据名称安装 APK。系统会自动清理 APK。

参数
apkFileName String:APK 文件的名称。

options String:为安装命令提供的额外选项

抛出
DeviceNotAvailableException
TargetSetupError

installPackage

public final void installPackage (ITestDevice device, 
                String apkFileName, 
                String... options)

在指定设备上根据名称安装 APK。系统会自动清理 APK。

参数
device ITestDevice:用于安装 apk 的 ITestDevice

apkFileName String:APK 文件的名称。

options String:为安装命令提供的额外选项

抛出
DeviceNotAvailableException
TargetSetupError

installPackageAsUser

public final void installPackageAsUser (ITestDevice device, 
                String apkFileName, 
                boolean grantPermission, 
                int userId, 
                String... options)

在给定设备上为特定用户安装指定名称的 apk。

参数
device ITestDevice:用于安装 apk 的 ITestDevice

apkFileName String:APK 文件的名称。

grantPermission boolean:在安装 apk 时是否传递授予权限标志。

userId int:要安装 APK 的用户的用户 ID。

options String:向安装命令提供的额外选项

抛出
DeviceNotAvailableException
TargetSetupError

installPackageAsUser

public final void installPackageAsUser (String apkFileName, 
                boolean grantPermission, 
                int userId, 
                String... options)

为特定用户安装指定名称的 apk。

参数
apkFileName String:APK 文件的名称。

grantPermission boolean:在安装 apk 时是否传递授予权限标志。

userId int:要安装 APK 的用户的用户 ID。

options String:向安装命令提供的额外选项

抛出
DeviceNotAvailableException
TargetSetupError

isPackageInstalled

public final boolean isPackageInstalled (String pkg)

检查设备上是否安装了指定名称的软件包

参数
pkg String:软件包的名称

返回
boolean 如果在设备上找到该软件包,则为 true

抛出
DeviceNotAvailableException

isPackageInstalled

public final boolean isPackageInstalled (ITestDevice device, 
                String pkg)

检查设备上是否安装了指定名称的软件包

参数
device ITestDevice:应卸载软件包的设备。

pkg String:软件包的名称

返回
boolean 如果在设备上找到该软件包,则为 true

抛出
DeviceNotAvailableException

runDeviceTests

public final boolean runDeviceTests (ITestDevice device, 
                String pkgName, 
                String testClassName, 
                String testMethodName, 
                Integer userId, 
                Long testTimeoutMs)

用于运行已安装的插桩软件包的方法。紧接着使用 getLastDeviceRunResults() 获取结果的详细信息。

参数
device ITestDevice:要针对哪个设备运行插桩。

pkgName String:要运行的软件包的名称。

testClassName String:要运行的测试类的名称。

testMethodName String:要运行的类中的测试方法的名称。

userId Integer:要针对其运行测试的用户的 ID。可以为 null。

testTimeoutMs Long:要应用于每个测试用例的超时(以毫秒为单位)。

返回
boolean 如果成功且未失败,则为 true。否则为 false。

抛出
DeviceNotAvailableException

runDeviceTests

public final boolean runDeviceTests (ITestDevice device, 
                String pkgName, 
                String testClassName, 
                String testMethodName, 
                Long testTimeoutMs, 
                Long maxTimeToOutputMs, 
                Long maxInstrumentationTimeoutMs)

用于运行已安装的插桩软件包的方法。紧接着使用 getLastDeviceRunResults() 获取结果的详细信息。

参数
device ITestDevice:要针对哪个设备运行插桩。

pkgName String:要运行的软件包的名称。

testClassName String:要运行的测试类的名称。

testMethodName String:要运行的类中的测试方法的名称。

testTimeoutMs Long:要应用于每个测试用例的超时(以毫秒为单位)。

maxTimeToOutputMs Long:测试开始输出内容的超时上限。

maxInstrumentationTimeoutMs Long:完整插桩完成所需的超时上限。

返回
boolean 如果成功且未失败,则为 true。否则为 false。

抛出
DeviceNotAvailableException

runDeviceTests

public final boolean runDeviceTests (ITestDevice device, 
                String runner, 
                String pkgName, 
                String testClassName, 
                String testMethodName, 
                Integer userId, 
                Long testTimeoutMs, 
                Long maxTimeToOutputMs, 
                Long maxInstrumentationTimeoutMs, 
                boolean checkResults, 
                boolean isHiddenApiCheckDisabled, 
                boolean isTestApiCheckDisabled, 
                boolean isIsolatedStorageDisabled, 
                boolean isWindowAnimationDisabled, 
                 instrumentationArgs, 
                 extraListeners)

用于运行已安装的插桩软件包的方法。紧接着使用 getLastDeviceRunResults() 获取结果的详细信息。

参数
device ITestDevice:要针对哪个设备运行插桩。

runner String

pkgName String:要运行的软件包的名称。

testClassName String:要运行的测试类的名称。

testMethodName String:要运行的类中的测试方法的名称。

userId Integer:要针对其运行测试的用户的 ID。可以为 null。

testTimeoutMs Long:要应用于每个测试用例的超时(以毫秒为单位)。

maxTimeToOutputMs Long:测试开始输出内容的超时上限。

maxInstrumentationTimeoutMs Long:完整插桩完成所需的超时上限。

checkResults boolean:是否检查结果是否发生崩溃。

isHiddenApiCheckDisabled boolean:我们是否应停用隐藏 API 检查。

isTestApiCheckDisabled boolean:是否应停用测试 API 检查。

isIsolatedStorageDisabled boolean:我们是否应停用独立存储空间。

isWindowAnimationDisabled boolean:是否应停用窗口动画。

instrumentationArgs :要传递给插桩的参数。

extraListeners

返回
boolean 如果成功且未失败,则为 true。否则为 false。

抛出
DeviceNotAvailableException

runDeviceTests

public final boolean runDeviceTests (ITestDevice device, 
                String pkgName, 
                String testClassName, 
                String testMethodName, 
                Long testTimeoutMs)

用于运行已安装的插桩软件包的方法。紧接着使用 getLastDeviceRunResults() 获取结果的详细信息。

参数
device ITestDevice:要针对哪个设备运行插桩。

pkgName String:要运行的软件包的名称。

testClassName String:要运行的测试类的名称。

testMethodName String:要运行的类中的测试方法的名称。

testTimeoutMs Long:要应用于每个测试用例的超时(以毫秒为单位)。

返回
boolean 如果成功且未失败,则为 true。否则为 false。

抛出
DeviceNotAvailableException

runDeviceTests

public final boolean runDeviceTests (ITestDevice device, 
                String runner, 
                String pkgName, 
                String testClassName, 
                String testMethodName, 
                Integer userId, 
                Long testTimeoutMs, 
                Long maxTimeToOutputMs, 
                Long maxInstrumentationTimeoutMs, 
                boolean checkResults, 
                boolean isHiddenApiCheckDisabled, 
                 instrumentationArgs)

用于运行已安装的插桩软件包的方法。紧接着使用 getLastDeviceRunResults() 获取结果的详细信息。

参数
device ITestDevice:要针对哪个设备运行插桩。

runner String

pkgName String:要运行的软件包的名称。

testClassName String:要运行的测试类的名称。

testMethodName String:要运行的类中的测试方法的名称。

userId Integer:要针对其运行测试的用户的 ID。可以为 null。

testTimeoutMs Long:要应用于每个测试用例的超时(以毫秒为单位)。

maxTimeToOutputMs Long:测试开始输出内容的超时上限。

maxInstrumentationTimeoutMs Long:完整插桩完成所需的超时上限。

checkResults boolean:是否检查结果是否发生崩溃。

isHiddenApiCheckDisabled boolean:我们是否应停用隐藏的 API 检查。

instrumentationArgs :要传递给插桩的参数。

返回
boolean 如果成功且未失败,则为 true。否则为 false。

抛出
DeviceNotAvailableException

runDeviceTests

public final boolean runDeviceTests (String pkgName, 
                String testClassName, 
                String testMethodName)

用于运行已安装的插桩软件包的方法。紧接着使用 getLastDeviceRunResults() 获取结果的详细信息。

参数
pkgName String:要运行的软件包的名称。

testClassName String:要运行的测试类的名称。

testMethodName String:要运行的类中的测试方法的名称。

返回
boolean 如果成功且未失败,则为 true。否则为 false。

抛出
DeviceNotAvailableException

runDeviceTests

public final boolean runDeviceTests (DeviceTestRunOptions options)

根据 DeviceTestRunOptions 中的信息运行插桩。

参数
options DeviceTestRunOptions:用于驱动插桩设置的 DeviceTestRunOptions

返回
boolean 如果成功且未失败,则为 true。否则为 false。

抛出
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

runDeviceTests

public final boolean runDeviceTests (ITestDevice device, 
                String runner, 
                String pkgName, 
                String testClassName, 
                String testMethodName, 
                Integer userId, 
                Long testTimeoutMs, 
                Long maxTimeToOutputMs, 
                Long maxInstrumentationTimeoutMs, 
                boolean checkResults, 
                boolean isHiddenApiCheckDisabled, 
                boolean isTestApiCheckDisabled, 
                boolean isIsolatedStorageDisabled, 
                boolean isWindowAnimationDisabled, 
                boolean isRestartDisabled, 
                 instrumentationArgs, 
                 extraListeners)

用于运行已安装的插桩软件包的方法。紧接着使用 getLastDeviceRunResults() 获取结果的详细信息。

参数
device ITestDevice:要针对哪个设备运行插桩。

runner String

pkgName String:要运行的软件包的名称。

testClassName String:要运行的测试类的名称。

testMethodName String:要运行的类中的测试方法的名称。

userId Integer:要针对其运行测试的用户的 ID。可以为 null。

testTimeoutMs Long:要应用于每个测试用例的超时(以毫秒为单位)。

maxTimeToOutputMs Long:测试开始输出内容的超时上限。

maxInstrumentationTimeoutMs Long:完整插桩完成所需的超时上限。

checkResults boolean:是否检查结果是否发生崩溃。

isHiddenApiCheckDisabled boolean:我们是否应停用隐藏 API 检查。

isTestApiCheckDisabled boolean:是否应停用测试 API 检查。

isIsolatedStorageDisabled boolean:我们是否应停用独立存储空间。

isWindowAnimationDisabled boolean:是否应停用窗口动画。

isRestartDisabled boolean

instrumentationArgs :要传递给插桩的参数。

extraListeners

返回
boolean 如果成功且未失败,则为 true。否则为 false。

抛出
DeviceNotAvailableException

runDeviceTests

public final boolean runDeviceTests (ITestDevice device, 
                String pkgName, 
                String testClassName, 
                String testMethodName)

用于运行已安装的插桩软件包的方法。紧接着使用 getLastDeviceRunResults() 获取结果的详细信息。

参数
device ITestDevice:要针对哪个设备运行插桩。

pkgName String:要运行的软件包的名称。

testClassName String:要运行的测试类的名称。

testMethodName String:要运行的类中的测试方法的名称。

返回
boolean 如果成功且未失败,则为 true。否则为 false。

抛出
DeviceNotAvailableException

runDeviceTests

public final boolean runDeviceTests (String pkgName, 
                String testClassName, 
                Integer userId, 
                Long testTimeoutMs)

用于运行已安装的插桩软件包的方法。紧接着使用 getLastDeviceRunResults() 获取结果的详细信息。

参数
pkgName String:要运行的软件包的名称。

testClassName String:要运行的测试类的名称。

userId Integer:要针对其运行测试的用户的 ID。可以为 null。

testTimeoutMs Long:要应用于每个测试用例的超时(以毫秒为单位)。

返回
boolean 如果成功且未失败,则为 true。否则为 false。

抛出
DeviceNotAvailableException

runDeviceTests

public final boolean runDeviceTests (String pkgName, 
                String testClassName)

用于运行已安装的插桩软件包的方法。紧接着使用 getLastDeviceRunResults() 获取结果的详细信息。

参数
pkgName String:要运行的软件包的名称。

testClassName String:要运行的测试类的名称。

返回
boolean 如果成功且未失败,则为 true。否则为 false。

抛出
DeviceNotAvailableException

runDeviceTests

public final boolean runDeviceTests (ITestDevice device, 
                String runner, 
                String pkgName, 
                String testClassName, 
                String testMethodName, 
                Integer userId, 
                Long testTimeoutMs, 
                Long maxTimeToOutputMs, 
                Long maxInstrumentationTimeoutMs, 
                boolean checkResults, 
                boolean isHiddenApiCheckDisabled, 
                boolean isTestApiCheckDisabled, 
                boolean isIsolatedStorageDisabled, 
                 instrumentationArgs, 
                 extraListeners)

用于运行已安装的插桩软件包的方法。紧接着使用 getLastDeviceRunResults() 获取结果的详细信息。

参数
device ITestDevice:要针对哪个设备运行插桩。

runner String

pkgName String:要运行的软件包的名称。

testClassName String:要运行的测试类的名称。

testMethodName String:要运行的类中的测试方法的名称。

userId Integer:要针对其运行测试的用户的 ID。可以为 null。

testTimeoutMs Long:要应用于每个测试用例的超时(以毫秒为单位)。

maxTimeToOutputMs Long:测试开始输出内容的超时上限。

maxInstrumentationTimeoutMs Long:完整插桩完成所需的超时上限。

checkResults boolean:是否检查结果是否发生崩溃。

isHiddenApiCheckDisabled boolean:我们是否应停用隐藏 API 检查。

isTestApiCheckDisabled boolean:是否应停用测试 API 检查。

isIsolatedStorageDisabled boolean:我们是否应停用独立存储空间。

instrumentationArgs :要传递给插桩的参数。

extraListeners

返回
boolean 如果成功且未失败,则为 true。否则为 false。

抛出
DeviceNotAvailableException

runDeviceTests

public final boolean runDeviceTests (String pkgName, 
                String testClassName, 
                Long testTimeoutMs)

用于运行已安装的插桩软件包的方法。紧接着使用 getLastDeviceRunResults() 获取结果的详细信息。

参数
pkgName String:要运行的软件包的名称。

testClassName String:要运行的测试类的名称。

testTimeoutMs Long:要应用于每个测试用例的超时(以毫秒为单位)。

返回
boolean 如果成功且未失败,则为 true。否则为 false。

抛出
DeviceNotAvailableException

runDeviceTests

public final boolean runDeviceTests (String runner, 
                String pkgName, 
                String testClassName, 
                String testMethodName)

用于运行已安装的插桩软件包的方法。紧接着使用 getLastDeviceRunResults() 获取结果的详细信息。

参数
runner String:要使用的插桩运行程序。

pkgName String:要运行的软件包的名称。

testClassName String:要运行的测试类的名称。

testMethodName String:要运行的类中的测试方法的名称。

返回
boolean 如果成功且未失败,则为 true。否则为 false。

抛出
DeviceNotAvailableException

setAbi

public final void setAbi (IAbi abi)

参数
abi IAbi

setTestInformation

public final void setTestInformation (TestInformation testInformation)

参数
testInformation TestInformation

uninstallPackage

public final String uninstallPackage (String pkgName)

在设备上卸载软件包。

参数
pkgName String:要卸载的 Android 软件包

返回
String 包含错误代码的 String,如果成功则为 null

抛出
DeviceNotAvailableException

uninstallPackage

public final String uninstallPackage (ITestDevice device, 
                String pkgName)

在设备上卸载软件包

参数
device ITestDevice:应卸载软件包的设备。

pkgName String:要卸载的 Android 软件包

返回
String 包含错误代码的 String,如果成功则为 null

抛出
DeviceNotAvailableException