public class RemoteAndroidTestRunner extends java.lang.Object implements IRemoteAndroidTestRunner
IRemoteAndroidTestRunner.TestSize| Constructor and Description |
|---|
RemoteAndroidTestRunner(java.lang.String packageName,
IShellEnabledDevice remoteDevice)
Alternate constructor.
|
RemoteAndroidTestRunner(java.lang.String packageName,
java.lang.String runnerName,
IShellEnabledDevice remoteDevice)
Creates a remote Android test runner.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addBooleanArg(java.lang.String name,
boolean value)
Adds a boolean argument to include in instrumentation command.
|
void |
addInstrumentationArg(java.lang.String name,
java.lang.String value)
Adds a argument to include in instrumentation command.
|
void |
cancel()
Requests cancellation of this test run.
|
java.lang.String |
getAmInstrumentCommand() |
java.lang.String |
getPackageName()
Returns the application package name.
|
java.lang.String |
getRunnerName()
Returns the runnerName.
|
java.lang.String |
getRunOptions()
Returns options for the am instrument command.
|
void |
removeInstrumentationArg(java.lang.String name)
Removes a previously added argument.
|
void |
run(java.util.Collection<ITestRunListener> listeners)
Execute this test run.
|
void |
run(ITestRunListener... listeners)
Execute this test run.
|
void |
setClassName(java.lang.String className)
Sets to run only tests in this class
Must be called before 'run'.
|
void |
setClassNames(java.lang.String[] classNames)
Sets to run only tests in the provided classes
Must be called before 'run'.
|
void |
setCoverage(boolean coverage)
Sets this code coverage mode of this test run.
|
void |
setDebug(boolean debug)
Sets this debug mode of this test run.
|
void |
setLogOnly(boolean logOnly)
Sets this test run to log only mode - skips test execution.
|
void |
setMaxtimeToOutputResponse(int maxTimeToOutputResponse) |
void |
setMaxTimeToOutputResponse(long maxTimeToOutputResponse,
java.util.concurrent.TimeUnit maxTimeUnits)
Sets the maximum time allowed between output of the shell command running the tests on
the devices.
|
void |
setMethodName(java.lang.String className,
java.lang.String testName)
Sets to run only specified test method
Must be called before 'run'.
|
void |
setRunName(java.lang.String runName)
Set a custom run name to be reported to the
ITestRunListener on IRemoteAndroidTestRunner.run(com.android.ddmlib.testrunner.ITestRunListener...) |
void |
setRunOptions(java.lang.String options)
Sets options for the am instrument command.
|
void |
setTestCollection(boolean collect)
Sets this test run to test collection mode.
|
void |
setTestPackageName(java.lang.String packageName)
Sets to run all tests in specified package
Must be called before 'run'.
|
void |
setTestSize(IRemoteAndroidTestRunner.TestSize size)
Sets to run only tests of given size.
|
public RemoteAndroidTestRunner(java.lang.String packageName,
java.lang.String runnerName,
IShellEnabledDevice remoteDevice)
packageName - the Android application package that contains the tests to runrunnerName - the instrumentation test runner to execute. If null, will use default
runnerremoteDevice - the Android device to execute tests onpublic RemoteAndroidTestRunner(java.lang.String packageName,
IShellEnabledDevice remoteDevice)
packageName - the Android application package that contains the tests to runremoteDevice - the Android device to execute tests onpublic java.lang.String getPackageName()
IRemoteAndroidTestRunnergetPackageName in interface IRemoteAndroidTestRunnerpublic java.lang.String getRunnerName()
IRemoteAndroidTestRunnergetRunnerName in interface IRemoteAndroidTestRunnerpublic void setClassName(java.lang.String className)
IRemoteAndroidTestRunnersetClassName in interface IRemoteAndroidTestRunnerclassName - fully qualified class name (eg x.y.z)public void setClassNames(java.lang.String[] classNames)
IRemoteAndroidTestRunnerIf providing more than one class, requires a InstrumentationTestRunner that supports the multiple class argument syntax.
setClassNames in interface IRemoteAndroidTestRunnerclassNames - array of fully qualified class names (eg x.y.z)public void setMethodName(java.lang.String className,
java.lang.String testName)
IRemoteAndroidTestRunnersetMethodName in interface IRemoteAndroidTestRunnerclassName - fully qualified class name (eg x.y.z)testName - method namepublic void setTestPackageName(java.lang.String packageName)
IRemoteAndroidTestRunnersetTestPackageName in interface IRemoteAndroidTestRunnerpackageName - fully qualified package name (eg x.y.z)public void addInstrumentationArg(java.lang.String name,
java.lang.String value)
IRemoteAndroidTestRunnerMust be called before 'run'. If an argument with given name has already been provided, it's value will be overridden.
addInstrumentationArg in interface IRemoteAndroidTestRunnername - the name of the instrumentation bundle argumentvalue - the value of the argumentpublic void removeInstrumentationArg(java.lang.String name)
IRemoteAndroidTestRunnerremoveInstrumentationArg in interface IRemoteAndroidTestRunnername - the name of the instrumentation bundle argument to removepublic void addBooleanArg(java.lang.String name,
boolean value)
IRemoteAndroidTestRunneraddBooleanArg in interface IRemoteAndroidTestRunnername - the name of the instrumentation bundle argumentvalue - the value of the argumentaddInstrumentationArg(java.lang.String, java.lang.String)public void setLogOnly(boolean logOnly)
IRemoteAndroidTestRunnersetLogOnly in interface IRemoteAndroidTestRunnerpublic void setDebug(boolean debug)
IRemoteAndroidTestRunnersetDebug in interface IRemoteAndroidTestRunnerpublic void setCoverage(boolean coverage)
IRemoteAndroidTestRunnersetCoverage in interface IRemoteAndroidTestRunnerpublic void setTestSize(IRemoteAndroidTestRunner.TestSize size)
IRemoteAndroidTestRunnersetTestSize in interface IRemoteAndroidTestRunnersize - the IRemoteAndroidTestRunner.TestSize to run.public void setTestCollection(boolean collect)
IRemoteAndroidTestRunnersetTestCollection in interface IRemoteAndroidTestRunnerpublic void setMaxtimeToOutputResponse(int maxTimeToOutputResponse)
setMaxtimeToOutputResponse in interface IRemoteAndroidTestRunnerpublic void setMaxTimeToOutputResponse(long maxTimeToOutputResponse,
java.util.concurrent.TimeUnit maxTimeUnits)
IRemoteAndroidTestRunnerThis allows setting a timeout in case the tests can become stuck and never finish. This is different from the normal timeout on the connection.
By default no timeout will be specified.
setMaxTimeToOutputResponse in interface IRemoteAndroidTestRunnermaxTimeToOutputResponse - the maximum amount of time during which the command is allowed
to not output any response. A value of 0 means the method will wait forever
(until the receiver cancels the execution) for command output and
never throw.maxTimeUnits - Units for non-zero maxTimeToOutputResponse values.IDevice.executeShellCommand(String, com.android.ddmlib.IShellOutputReceiver, int)public void setRunName(java.lang.String runName)
IRemoteAndroidTestRunnerITestRunListener on IRemoteAndroidTestRunner.run(com.android.ddmlib.testrunner.ITestRunListener...)
If unspecified, will use package name
setRunName in interface IRemoteAndroidTestRunnerpublic void run(ITestRunListener... listeners) throws TimeoutException, AdbCommandRejectedException, ShellCommandUnresponsiveException, java.io.IOException
IRemoteAndroidTestRunner
Convenience method for IRemoteAndroidTestRunner.run(Collection).
run in interface IRemoteAndroidTestRunnerlisteners - listens for test resultsTimeoutException - in case of a timeout on the connection.AdbCommandRejectedException - if adb rejects the commandShellCommandUnresponsiveException - if the device did not output any test result for
a period longer than the max time to output.java.io.IOException - if connection to device was lost.IRemoteAndroidTestRunner.setMaxtimeToOutputResponse(int)public void run(java.util.Collection<ITestRunListener> listeners) throws TimeoutException, AdbCommandRejectedException, ShellCommandUnresponsiveException, java.io.IOException
IRemoteAndroidTestRunnerrun in interface IRemoteAndroidTestRunnerlisteners - collection of listeners for test resultsTimeoutException - in case of a timeout on the connection.AdbCommandRejectedException - if adb rejects the commandShellCommandUnresponsiveException - if the device did not output any test result for
a period longer than the max time to output.java.io.IOException - if connection to device was lost.IRemoteAndroidTestRunner.setMaxtimeToOutputResponse(int)@NonNull public java.lang.String getAmInstrumentCommand()
@NonNull public java.lang.String getRunOptions()
public void setRunOptions(@NonNull
java.lang.String options)
public void cancel()
IRemoteAndroidTestRunnercancel in interface IRemoteAndroidTestRunner