如何将参数传递给使用 adb shell am Instrumentation 命令启动的测试函数
我正在 Android 中开发,我正在使用仪器来测试电话应用程序。 Instrumentation 是用于测试应用程序的 Android 环境。
为此,我使用带有测试用例名称的 am 命令。 我运行 adb,然后进入 adb shell,然后在 shell 中写入 am 命令。
我希望与此 am 命令一起传递一个参数。 我的意思是我希望将参数传递给 am 命令启动的测试。
是否可以 ??? 请帮忙?
I am developing in Android, I am using instrumentation to test Phone application.
Instrumentation is Android env to test applications.
For that I use am command with name of test case.
I run adb, then I enter adb shell, then write in shell the am command.
I wish to deliver a parameter together with this am command.
I mean that I wish to deliver parameters to the test launched by the am command.
Is it possible ???
Please help ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以将数据 URI、mime 类型甚至“附加内容”传递给 am 命令 。您可以将它们作为“附加项”传递,然后获取传递给它的附加项。
与附加功能相关的可用选项有:
-e | --es extra_key extra_string_value
:将字符串数据添加为键值对。--ez extra_key extra_boolean_value
:将布尔数据添加为键值对。--ei extra_key extra_int_value
:将整数数据添加为键值对。--el extra_key extra_long_value
:以键值对的形式添加长数据。--ef extra_key extra_float_value
:将浮点数据添加为键值对。--eu extra_key extra_uri_value
:将 URI 数据添加为键值对。--ecn extra_key extra_component_name_value
:添加组件名称,该名称被转换并作为 ComponentName 对象传递。--eia extra_key extra_int_value[,extra_int_value...]
:添加整数数组。--ela extra_key extra_long_value[,extra_long_value...]
:添加一个长整型数组。--efa extra_key extra_float_value[,extra_float_value...]
:添加浮点数数组。你可以像这样传递它们:
然后在你的代码中:
You can pass a data URI, mime type and even "extras" to the am command. You could pass them as "extras" and then get the extras that are passed to it.
The available options related to extras are:
-e | --es extra_key extra_string_value
: Add string data as a key-value pair.--ez extra_key extra_boolean_value
: Add boolean data as a key-value pair.--ei extra_key extra_int_value
: Add integer data as a key-value pair.--el extra_key extra_long_value
: Add long data as a key-value pair.--ef extra_key extra_float_value
: Add float data as a key-value pair.--eu extra_key extra_uri_value
: Add URI data as a key-value pair.--ecn extra_key extra_component_name_value
: Add a component name, which is converted and passed as a ComponentName object.--eia extra_key extra_int_value[,extra_int_value...]
: Add an array of integers.--ela extra_key extra_long_value[,extra_long_value...]
: Add an array of longs.--efa extra_key extra_float_value[,extra_float_value...]
: Add an array of floats.You would pass them like this:
Then in your code:
传递参数:(例如,-e peerID SCH-I545)
在测试类中:
Pass the paramater in: (e.g., -e peerID SCH-I545)
In the test class:
要发送额外的值,您应该添加 -n(Component) 来使用 -e 发送额外的值,
这里是发送多个键值的示例,
然后在活动中获取数据,在 onCreate 中像这样
to send extra value you should add -n(Component) for sending extra value with -e
here is the sample to sent multiple key-value
then to get data inside activity, get like this inside onCreate
确切地说是:
com.shortcut.activity/com.shortcut.activity.SelectCardActivity -> uir 到您的主课程活动启动应用程序。
将传递给您的应用程序参数 user_id = 1
在 SelectCardActivity 类中,您可以得到如下结果:
exactly is:
com.shortcut.activity/com.shortcut.activity.SelectCardActivity -> uir to your main class activity start app.
will pass to your app param user_id = 1
and on class SelectCardActivity you get it as bellow :
由于您已经在使用 Android sdk,并且知道 sdk 在系统上的位置 -
转到终端上的 sdk 位置(命令提示符)->输入 adb shell ->输入 am 帮助
示例
http://whenpridefucks.blogspot.in/2011 /12/android-send-broadcast-intents-via-adb.html
Since you are already working on Android sdk, given you know the sdk location on your system -
Go to sdk location on terminal(command prompt)-> type adb shell -> type am help
with example
http://whenpridefucks.blogspot.in/2011/12/android-send-broadcast-intents-via-adb.html