【发布时间】:2016-05-29 10:47:23
【问题描述】:
我正在为我的应用程序实现 UiAutomator 以实现跨应用 UI 自动化。我把它放在 AndroidTest 类下。当我运行我的测试类时它工作正常,但我需要它从我的应用程序运行(不必将它连接到计算机)。 我找到了这个解决方案,但它不起作用:
private void runTests() {
Bundle arguments = new Bundle();
final String packageName = getPackageName();
final List<InstrumentationInfo> list =
getPackageManager().queryInstrumentation(packageName, 0);
if (list.isEmpty()) {
return;
}
final InstrumentationInfo instrumentationInfo = list.get(0);
final ComponentName componentName =
new ComponentName(instrumentationInfo.packageName,
instrumentationInfo.name);
arguments.putString("package", "my package");
startInstrumentation(componentName,null,arguments);
}
显然,检测的 UiAutomator 参数返回 null。知道如何从主应用程序运行 UiAutomator 吗?
【问题讨论】:
-
“当我运行我的测试类时它工作正常,但我需要它从我的应用程序运行(不必将它连接到计算机)”——你不能以这种方式运行仪器测试。它们必须由测试运行器从合适的流程运行。 “我正在为我的跨应用 UI 自动化应用程序实现 UiAutomator”——您可能希望更详细地解释您的意思。
标签: java android ui-automation android-uiautomator