我创建了一个测试项目,其代码与此处显示的完全相同:
http://developer.android.com/tools/testing/testing_ui.html
我已经在android虚拟设备中上传了jar文件,现在我已经准备好运行测试了。但我总是在控制台上得到这个输出:
INSTRUMENTATION_STATUS:stream =
WatcherResultPrinter =
的测试结果时间:0.0
确定(0测试)
INSTRUMENTATION_STATUS_CODE:-1
我还使用以下代码创建了一个简单的测试:
public void FailedTest() throws UiObjectNotFoundException {
assertTrue("This test was executed", false);
}
如果使用ui元素的代码有问题。
包名称为Tests
,类名为Login
,因此我运行以下命令:
adb shell uiautomator runtest TestProject.jar -c Tests.Login
修改
当我在真实设备上运行时,我得到:
uiautomator:许可被拒绝
答案 0 :(得分:3)
作为第一步,您是否可以更改测试方法的名称以匹配jUnit 3中使用的标准约定,即public void testWhatever() { ... }
名称的前4个字母必须为'test',小写,签名是public void,该方法不带任何参数。
同样,您是否可以将包名称更改为更标准的小写约定,例如org.example.tests如果你的文件名为Tests.java(并且该类也称为Tests),那么你应该可以按如下方式调用它:
adb shell uiautomator runtest Tests.jar -c com.example.tests.Tests
如果这些没有帮助,请您修改问题以包含Tests.java文件中的整个代码吗?
注意:在我旅行的这个阶段,我没有尝试重现您的代码。如果我的建议没有解决您的问题,我可以这样做。
我会分别跟进uiautomator: permission denied
。 UI Automator测试确实在真实设备上运行。他们不需要将设备植根。我在标准的Android 4.2.x设备上运行它们。