com.android.ddmlib.testrunner
Interface IRemoteAndroidTestRunner

All Known Implementing Classes:
RemoteAndroidTestRunner

public interface IRemoteAndroidTestRunner

Interface for running a Android test command remotely and reporting result to a listener.


Nested Class Summary
static class IRemoteAndroidTestRunner.TestSize
           
 
Method Summary
 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 getPackageName()
          Returns the application package name.
 java.lang.String getRunnerName()
          Returns the runnerName.
 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)
          Deprecated. Use setMaxTimeToOutputResponse(long, java.util.concurrent.TimeUnit).
 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 run(com.android.ddmlib.testrunner.ITestRunListener...)

If unspecified, will use package name

 void setTestCollection(boolean collection)
          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.
 

Method Detail

getPackageName

java.lang.String getPackageName()
Returns the application package name.


getRunnerName

java.lang.String getRunnerName()
Returns the runnerName.


setClassName

void setClassName(java.lang.String className)
Sets to run only tests in this class Must be called before 'run'.

Parameters:
className - fully qualified class name (eg x.y.z)

setClassNames

void setClassNames(java.lang.String[] classNames)
Sets to run only tests in the provided classes Must be called before 'run'.

If providing more than one class, requires a InstrumentationTestRunner that supports the multiple class argument syntax.

Parameters:
classNames - array of fully qualified class names (eg x.y.z)

setMethodName

void setMethodName(java.lang.String className,
                   java.lang.String testName)
Sets to run only specified test method Must be called before 'run'.

Parameters:
className - fully qualified class name (eg x.y.z)
testName - method name

setTestPackageName

void setTestPackageName(java.lang.String packageName)
Sets to run all tests in specified package Must be called before 'run'.

Parameters:
packageName - fully qualified package name (eg x.y.z)

setTestSize

void setTestSize(IRemoteAndroidTestRunner.TestSize size)
Sets to run only tests of given size. Must be called before 'run'.

Parameters:
size - the IRemoteAndroidTestRunner.TestSize to run.

addInstrumentationArg

void addInstrumentationArg(java.lang.String name,
                           java.lang.String value)
Adds a argument to include in instrumentation command.

Must be called before 'run'. If an argument with given name has already been provided, it's value will be overridden.

Parameters:
name - the name of the instrumentation bundle argument
value - the value of the argument

removeInstrumentationArg

void removeInstrumentationArg(java.lang.String name)
Removes a previously added argument.

Parameters:
name - the name of the instrumentation bundle argument to remove

addBooleanArg

void addBooleanArg(java.lang.String name,
                   boolean value)
Adds a boolean argument to include in instrumentation command.

Parameters:
name - the name of the instrumentation bundle argument
value - the value of the argument
See Also:
RemoteAndroidTestRunner.addInstrumentationArg(java.lang.String, java.lang.String)

setLogOnly

void setLogOnly(boolean logOnly)
Sets this test run to log only mode - skips test execution.


setDebug

void setDebug(boolean debug)
Sets this debug mode of this test run. If true, the Android test runner will wait for a debugger to attach before proceeding with test execution.


setCoverage

void setCoverage(boolean coverage)
Sets this code coverage mode of this test run.


setTestCollection

void setTestCollection(boolean collection)
Sets this test run to test collection mode. If true, will skip test execution and will set all appropriate runner arguments required for a successful test collection.


setMaxtimeToOutputResponse

@Deprecated
void setMaxtimeToOutputResponse(int maxTimeToOutputResponse)
Deprecated. Use setMaxTimeToOutputResponse(long, java.util.concurrent.TimeUnit).


setMaxTimeToOutputResponse

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.

This 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.

Parameters:
maxTimeToOutputResponse - 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.
See Also:
IDevice.executeShellCommand(String, com.android.ddmlib.IShellOutputReceiver, int)

setRunName

void setRunName(java.lang.String runName)
Set a custom run name to be reported to the ITestRunListener on run(com.android.ddmlib.testrunner.ITestRunListener...)

If unspecified, will use package name

Parameters:
runName -

run

void run(ITestRunListener... listeners)
         throws TimeoutException,
                AdbCommandRejectedException,
                ShellCommandUnresponsiveException,
                java.io.IOException
Execute this test run.

Convenience method for run(Collection).

Parameters:
listeners - listens for test results
Throws:
TimeoutException - in case of a timeout on the connection.
AdbCommandRejectedException - if adb rejects the command
ShellCommandUnresponsiveException - 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.
See Also:
setMaxtimeToOutputResponse(int)

run

void run(java.util.Collection<ITestRunListener> listeners)
         throws TimeoutException,
                AdbCommandRejectedException,
                ShellCommandUnresponsiveException,
                java.io.IOException
Execute this test run.

Parameters:
listeners - collection of listeners for test results
Throws:
TimeoutException - in case of a timeout on the connection.
AdbCommandRejectedException - if adb rejects the command
ShellCommandUnresponsiveException - 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.
See Also:
setMaxtimeToOutputResponse(int)

cancel

void cancel()
Requests cancellation of this test run.