public class InstrumentationTestRunner
extends Instrumentation
implements TestSuiteProvider
java.lang.Object | ||
↳ | android.app.Instrumentation | |
↳ | android.test.InstrumentationTestRunner |
Known Direct Subclasses |
此类在API级别24中已被弃用。
改为使用AndroidJUnitRunner 。 应使用Android Testing Support Library编写新的测试。
一个 Instrumentation
运行各种类型的 TestCase
针对Android包(应用)秒。
有关应用程序测试的更多信息,请阅读 Testing开发人员指南。
TestCase
s that perform unit, functional, or performance tests against the classes in your package. Typically these are subclassed from:
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. InstrumentationTestCase
. InstrumentationTestCase
(and are not performance tests). TestCase
. 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/
Constants |
|
---|---|
String |
REPORT_KEY_NAME_CLASS 如果包含在发送到IInstrumentationWatcher的状态或最终包中,则此键标识当前测试类的名称。 |
String |
REPORT_KEY_NAME_TEST 如果包含在发送到IInstrumentationWatcher的状态或最终包中,则此键标识当前测试的名称。 |
String |
REPORT_KEY_NUM_CURRENT 如果包含在发送到IInstrumentationWatcher的状态或最终包中,则此键标识当前测试的序列号。 |
String |
REPORT_KEY_NUM_TOTAL 如果包含在发送到IInstrumentationWatcher的状态或最终包中,则此键标识正在运行的测试的总数。 |
String |
REPORT_KEY_STACK 如果包含在发送到IInstrumentationWatcher的状态包中,则此键标识描述错误或故障的堆栈跟踪。 |
String |
REPORT_VALUE_ID 该值如果与密钥 |
int |
REPORT_VALUE_RESULT_ERROR 测试完成时出现错误。 |
int |
REPORT_VALUE_RESULT_FAILURE 测试以失败告终。 |
int |
REPORT_VALUE_RESULT_OK 测试成功完成。 |
int |
REPORT_VALUE_RESULT_START 测试正在开始。 |
Inherited constants |
---|
From class android.app.Instrumentation
|
Public constructors |
|
---|---|
InstrumentationTestRunner() |
Public methods |
|
---|---|
TestSuite |
getAllTests() 重写此操作以定义要在包中运行的所有测试。 |
Bundle |
getArguments() 获取传递给这个工具的参数。 |
ClassLoader |
getLoader() 覆盖它以提供对包的类加载器的访问。 |
TestSuite |
getTestSuite() |
void |
onCreate(Bundle arguments) 在仪器启动时调用,在加载任何应用程序代码之前。 |
void |
onStart() 检测线程进入执行的方法。 |
Protected methods |
|
---|---|
AndroidTestRunner |
getAndroidTestRunner() |
Inherited methods |
|
---|---|
From class android.app.Instrumentation
|
|
From class java.lang.Object
|
|
From interface android.test.TestSuiteProvider
|
String REPORT_KEY_NAME_CLASS
如果包含在发送到IInstrumentationWatcher的状态或最终包中,则此键标识当前测试类的名称。 这与任何状态消息一起发送,描述正在启动或完成的特定测试。
常数值:“class”
String REPORT_KEY_NAME_TEST
如果包含在发送到IInstrumentationWatcher的状态或最终包中,则此键标识当前测试的名称。 这与任何状态消息一起发送,描述正在启动或完成的特定测试。
常数值:“测试”
String REPORT_KEY_NUM_CURRENT
如果包含在发送到IInstrumentationWatcher的状态或最终包中,则此键标识当前测试的序列号。 这与任何状态消息一起发送,描述正在启动或完成的特定测试。
常数值:“当前”
String REPORT_KEY_NUM_TOTAL
如果包含在发送到IInstrumentationWatcher的状态或最终包中,则此键标识正在运行的测试的总数。 这是与所有状态消息一起发送的。
常量值:“numtests”
String REPORT_KEY_STACK
如果包含在发送到IInstrumentationWatcher的状态包中,则此键标识描述错误或故障的堆栈跟踪。 这是与任何状态消息一起发送描述正在完成的特定测试。
常量值:“堆栈”
String REPORT_VALUE_ID
该值如果与密钥REPORT_KEY_IDENTIFIER
一起存储, REPORT_KEY_IDENTIFIER
InstrumentationTestRunner标识为报告的来源。 这是与所有状态消息一起发送的。
常量值:“InstrumentationTestRunner”
int REPORT_VALUE_RESULT_ERROR
测试完成时出现错误。
常量值:-1(0xffffffff)
int REPORT_VALUE_RESULT_FAILURE
测试以失败告终。
常量值:-2(0xfffffffe)
int REPORT_VALUE_RESULT_START
测试正在开始。
常数值:1(0x00000001)
Bundle getArguments ()
获取传递给这个工具的参数。
Returns | |
---|---|
Bundle |
the Bundle object |
void onCreate (Bundle arguments)
在仪器启动时调用,在加载任何应用程序代码之前。 通常这将被实现,只需调用start()
开始检测线程,然后将继续执行onStart()
。
如果你不需要你自己的线程 - 那就是你正在编写你的工具来完全异步(返回到事件循环以便应用程序可以运行),那么你可以简单地在这里开始你的工具,例如调用 startActivity(Intent)
开始适当的第一个应用程序的活动。
Parameters | |
---|---|
arguments |
Bundle : Any additional arguments that were supplied when the instrumentation was started. |
void onStart ()
检测线程进入执行的方法。 这使您可以在与应用程序不同的线程中运行检测代码,以便它可以执行阻止操作,例如sendKeySync(KeyEvent)
或startActivitySync(Intent)
。
当这个函数完成时,你通常会想调用finish()来结束你的检测。
AndroidTestRunner getAndroidTestRunner ()
Returns | |
---|---|
AndroidTestRunner |