参考链接:Link1,Robotium Link2
我们知道从Robotium Link2开始,我们可以从android代码运行robotium测试运行。
现在让我们谈谈uiautomator
我已经从Link1
手动完成了以下步骤adb push bin/AutomatedTests.jar /data/local/tmp/
问题:如何从“Android活动代码”中运行以下行:
adb shell uiautomator runtest /data/local/tmp/AutomatedTests.jar -c com.example.tests.SimpleTest
案例1:
我尝试了这段代码:Code Link,参数如下:
String[] strCmdArgsUiTesting =
"/system/bin/uiautomator runtest UiTestingExample.jar -c com.intel.vishal.uitestingexample.LaunchBasemarkES2Taiji".split(" ");
错误来了:
INSTRUMENTATION_RESULT: longMsg=Permission Denial:
Do not have permission in call getContentProviderExternal()
from pid=2691, uid=10082
requires android.permission.ACCESS_CONTENT_PROVIDERS_EXTERNALLY
我将此权限添加到AndroidManifest.xml中,如下所示
<uses-permission android:name="android.permission.ACCESS_CONTENT_PROVIDERS_EXTERNALLY"/>
但同样的错误又来了。此权限在Android活动中无效...
如何解决此错误?
请注意: - 我使用的是Android 4.2.2
答案 0 :(得分:3)
我相信您的手机需要 rooted 才能从应用的Java代码中调用任何控制台命令......
答案 1 :(得分:2)
检查此链接以了解如何从Android代码运行命令:Android run bash command in app
现在,您要执行
uiautomator runtest /data/local/tmp/AutomatedTests.jar -c com.example.tests.SimpleTest
而不是
adb shell uiautomator runtest /data/local/tmp/AutomatedTests.jar -c com.example.tests.SimpleTest