我已经用完全相同的代码创建了一个测试项目:
http://developer.android.com/tools/testing/testing_ui.html我已经在android虚拟设备中上传了jar文件,现在我准备好运行测试了。但是我总是在控制台上得到这样的输出:
INSTRUMENTATION_STATUS: stream=
WatcherResultPrinter测试结果=
时间:0.0
OK(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 test登录
编辑
当我在一个真正的设备上运行它时,我得到:
uiautomator: permission denied
作为第一步,您可以更改测试方法的名称以匹配jUnit 3中使用的标准约定,即public void testWhatever() { ... }
名称的前4个字母必须是小写的'test',签名是公共无效的,该方法不接受任何参数。
同样,你能不能把包的名字改成更标准的小写约定,比如org.example.tests如果你的文件叫做Tests.java(类也叫Tests),那么你应该能像这样调用它:
adb shell uiautomator runtest Tests.jar -c com.example.tests.Tests
如果这些都没有帮助,请修改问题,包括整个代码从你的test .java文件?
注意:我没有试图在这个阶段复制你的代码,因为我正在旅行。如果我的建议不能解决你的问题,我可以这样做。
我将分别跟进uiautomator: permission denied
。UI自动化测试确实在真实设备上运行。他们不需要设备的根。我在标准Android 4.2上运行它们。x设备。