InstrumentationTestRunner | API reference | Android Developers
public
class
InstrumentationTestRunner
extends Instrumentation
implements
TestSuiteProvider
This class was deprecated
in API level 24.
Use
AndroidJUnitRunner instead. New tests should be written using the
Android Testing Support Library.
An Instrumentation that runs various types of ERROR(/junit.framework.TestCase)s against
an Android package (application).
Developer Guides
For more information about application testing, read the Testing developer guide.
Typical Usage
- Write
ERROR(/junit.framework.TestCase)s that perform unit, functional, or performance tests against the classes in your package. Typically these are subclassed from: - Set the
android:targetPackageattribute of the<instrumentation>element in the test package's manifest. You should set the attribute value to the package name of the target application under test. - Run the instrumentation using "adb shell am instrument -w", with no optional arguments, to run all tests (except performance tests).
- Run the instrumentation using "adb shell am instrument -w",
with the argument '-e func true' to run all functional tests. These are tests that derive from
InstrumentationTestCase. - Run the instrumentation using "adb shell am instrument -w",
with the argument '-e unit true' to run all unit tests. These are tests that do notderive
from
InstrumentationTestCase(and are not performance tests). - Run the instrumentation using "adb shell am instrument -w",
with the argument '-e class' set to run an individual
ERROR(/junit.framework.TestCase).
Running all tests: adb shell am instrument -w com.android.foo/android.test.InstrumentationTestRunner
Running all small tests: adb shell am instrument -w -e size small com.android.foo/android.test.InstrumentationTestRunner
Running all medium tests: adb shell am instrument -w -e size medium com.android.foo/android.test.InstrumentationTestRunner
Running all large tests: adb shell am instrument -w -e size large com.android.foo/android.test.InstrumentationTestRunner
Filter test run to tests with given annotation: adb shell am instrument -w -e annotation com.android.foo.MyAnnotation com.android.foo/android.test.InstrumentationTestRunner
If used with other options, the resulting test run will contain the union of the two options.
e.g. "-e size large -e annotation com.android.foo.MyAnnotation" will run only tests with both
the LargeTest and "com.android.foo.MyAnnotation" annotations.
Filter test run to tests without given annotation: adb shell am instrument -w -e notAnnotation com.android.foo.MyAnnotation com.android.foo/android.test.InstrumentationTestRunner
Running a single testcase: adb shell am instrument -w -e class com.android.foo.FooTest com.android.foo/android.test.InstrumentationTestRunner
Running a single test: adb shell am instrument -w -e class com.android.foo.FooTest#testFoo com.android.foo/android.test.InstrumentationTestRunner
Running multiple tests: adb shell am instrument -w -e class com.android.foo.FooTest,com.android.foo.TooTest com.android.foo/android.test.InstrumentationTestRunner
Running all tests in a java package: adb shell am instrument -w -e package com.android.foo.subpkg com.android.foo/android.test.InstrumentationTestRunner
Including performance tests: adb shell am instrument -w -e perf true com.android.foo/android.test.InstrumentationTestRunner
To debug your tests, set a break point in your code and pass: -e debug true
To run in 'log only' mode -e log true This option will load and iterate through all test classes and methods, but will bypass actual test execution. Useful for quickly obtaining info on the tests to be executed by an instrumentation command.
To generate EMMA code coverage: -e coverage true Note: this requires an emma instrumented build. By default, the code coverage results file will be saved in a /data//coverage.ec file, unless overridden by coverageFile flag (see below)
To specify EMMA code coverage results file path:
-e coverageFile /sdcard/myFile.ec
in addition to the other arguments.
Summary
Constants | |
|---|---|
String |
REPORT_KEY_NAME_CLASS
If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies the name of the current test class. |
String |
REPORT_KEY_NAME_TEST
If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies the name of the current test. |
String |
REPORT_KEY_NUM_CURRENT
If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies the sequence number of the current test. |
String |
REPORT_KEY_NUM_TOTAL
If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies the total number of tests that are being run. |
String |
REPORT_KEY_STACK
If included in the status bundle sent to an IInstrumentationWatcher, this key identifies a stack trace describing an error or failure. |
String |
REPORT_VALUE_ID
This value, if stored with key |
int |
REPORT_VALUE_RESULT_ERROR
The test completed with an error. |
int |
REPORT_VALUE_RESULT_FAILURE
The test completed with a failure. |
int |
REPORT_VALUE_RESULT_OK
The test completed successfully. |
int |
REPORT_VALUE_RESULT_START
The test is starting. |
Inherited constants | ||||
|---|---|---|---|---|
|
From class
|
Public constructors | |
|---|---|
InstrumentationTestRunner()
|
|
Public methods | |
|---|---|
TestSuite
|
getAllTests()
Override this to define all of the tests to run in your package. |
Bundle
|
getArguments()
Get the arguments passed to this instrumentation. |
ClassLoader
|
getLoader()
Override this to provide access to the class loader of your package. |
TestSuite
|
getTestSuite()
|
void
|
onCreate(Bundle arguments)
Called when the instrumentation is starting, before any application code has been loaded. |
void
|
onStart()
Method where the instrumentation thread enters execution. |
Protected methods | |
|---|---|
void
|
addTestListener(TestListener listener)
Add a |
AndroidTestRunner
|
getAndroidTestRunner()
|
Inherited methods | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
From class
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
From class
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
From interface
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Constants
REPORT_KEY_NAME_CLASS
public static final String REPORT_KEY_NAME_CLASS
If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies the name of the current test class. This is sent with any status message describing a specific test being started or completed.
Constant Value: "class"