Added in API level 1
Deprecated in API level 24

InstrumentationTestRunner


open class InstrumentationTestRunner : Instrumentation, TestSuiteProvider
kotlin.Any
   ↳ android.app.Instrumentation
   ↳ android.test.InstrumentationTestRunner

An Instrumentation that runs various types of junit.framework.TestCases against an Android package (application).

Typical Usage

  1. Write junit.framework.TestCases that perform unit, functional, or performance tests against the classes in your package. Typically these are subclassed from:
  2. Set the android:targetPackage attribute 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.
  3. Run the instrumentation using "adb shell am instrument -w", with no optional arguments, to run all tests (except performance tests).
  4. 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 android.test.InstrumentationTestCase.
  5. 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 android.test.InstrumentationTestCase (and are not performance tests).
  6. Run the instrumentation using "adb shell am instrument -w", with the argument '-e class' set to run an individual 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
static String

If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies the name of the current test class.

static String

If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies the name of the current test.

static String

If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies the sequence number of the current test.

static String

If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies the total number of tests that are being run.

static String

If included in the status bundle sent to an IInstrumentationWatcher, this key identifies a stack trace describing an error or failure.

static String

This value, if stored with key android.app.Instrumentation#REPORT_KEY_IDENTIFIER, identifies InstrumentationTestRunner as the source of the report.

static Int

The test completed with an error.

static Int

The test completed with a failure.

static Int

The test completed successfully.

static Int

The test is starting.

Inherited constants
Public constructors

Public methods
open TestSuite!

Override this to define all of the tests to run in your package.

open Bundle!

Get the arguments passed to this instrumentation.

open ClassLoader!

Override this to provide access to the class loader of your package.

open TestSuite!

open Unit
onCreate(arguments: Bundle!)

open Unit

Protected methods
open Unit
addTestListener(listener: TestListener!)

Add a TestListener

open AndroidTestRunner!

Inherited functions

Constants

REPORT_KEY_NAME_CLASS

Added in API level 1
static val REPORT_KEY_NAME_CLASS: String

Deprecated: Deprecated in Java.

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.

Value: "class"

REPORT_KEY_NAME_TEST

Added in API level 1
static val REPORT_KEY_NAME_TEST: String

Deprecated: Deprecated in Java.

If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies the name of the current test. This is sent with any status message describing a specific test being started or completed.

Value: "test"

REPORT_KEY_NUM_CURRENT

Added in API level 1
static val REPORT_KEY_NUM_CURRENT: String

Deprecated: Deprecated in Java.

If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies the sequence number of the current test. This is sent with any status message describing a specific test being started or completed.

Value: "current"

REPORT_KEY_NUM_TOTAL

Added in API level 1
static val REPORT_KEY_NUM_TOTAL: String

Deprecated: Deprecated in Java.

If included in the status or final bundle sent to an IInstrumentationWatcher, this key identifies the total number of tests that are being run. This is sent with all status messages.

Value: "numtests"

REPORT_KEY_STACK

Added in API level 1
static val REPORT_KEY_STACK: String

Deprecated: Deprecated in Java.

If included in the status bundle sent to an IInstrumentationWatcher, this key identifies a stack trace describing an error or failure. This is sent with any status message describing a specific test being completed.

Value: "stack"

REPORT_VALUE_ID

Added in API level 1
static val REPORT_VALUE_ID: String

Deprecated: Deprecated in Java.

This value, if stored with key android.app.Instrumentation#REPORT_KEY_IDENTIFIER, identifies InstrumentationTestRunner as the source of the report. This is sent with all status messages.

Value: "InstrumentationTestRunner"

REPORT_VALUE_RESULT_ERROR

Added in API level 1
static val REPORT_VALUE_RESULT_ERROR: Int

Deprecated: Deprecated in Java.

The test completed with an error.

Value: -1

REPORT_VALUE_RESULT_FAILURE

Added in API level 1
static val REPORT_VALUE_RESULT_FAILURE: Int

Deprecated: Deprecated in Java.

The test completed with a failure.

Value: -2

REPORT_VALUE_RESULT_OK

Added in API level 1
static val REPORT_VALUE_RESULT_OK: Int

Deprecated: Deprecated in Java.

The test completed successfully.

Value: 0

REPORT_VALUE_RESULT_START

Added in API level 1
static val REPORT_VALUE_RESULT_START: Int

Deprecated: Deprecated in Java.

The test is starting.

Value: 1

Public constructors

InstrumentationTestRunner

InstrumentationTestRunner()

Public methods

getAllTests

Added in API level 1
open fun getAllTests(): TestSuite!

Deprecated: Deprecated in Java.

Override this to define all of the tests to run in your package.

getArguments

Added in API level 18
Deprecated in API level 24
open fun getArguments(): Bundle!

Deprecated: Deprecated in Java.

Get the arguments passed to this instrumentation.

Return
Bundle! the Bundle object

getLoader

Added in API level 1
open fun getLoader(): ClassLoader!

Deprecated: Deprecated in Java.

Override this to provide access to the class loader of your package.

getTestSuite

Added in API level 1
open fun getTestSuite(): TestSuite!

Deprecated: Deprecated in Java.

onCreate

Added in API level 1
open fun onCreate(arguments: Bundle!): Unit

Deprecated: Deprecated in Java.

Parameters
arguments Bundle!: Any additional arguments that were supplied when the instrumentation was started.

onStart

Added in API level 1
open fun onStart(): Unit

Deprecated: Deprecated in Java.

Protected methods

addTestListener

Added in API level 1
protected open fun addTestListener(listener: TestListener!): Unit

Deprecated: Deprecated in Java.

Add a TestListener

getAndroidTestRunner

Added in API level 1
protected open fun getAndroidTestRunner(): AndroidTestRunner!

Deprecated: Deprecated in Java.