4

我创建了一个测试项目,其代码与此处显示的完全相同:

http://developer.android.com/tools/testing/testing_ui.html

我已经在 android 虚拟设备中上传了 jar 文件,现在我可以运行测试了。但我总是在控制台上得到这个输出:

INSTRUMENTATION_STATUS:流=

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:权限被拒绝

4

1 回答 1

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 设备上运行它们。

于 2013-04-12T13:51:20.013 回答