1

在 Linux 中使用适用于 Android 的 UIAutomator 库运行测试时遇到问题。基本设置是 Nexus 4,或带有 4.2.2、JDK6、Eclipse 和 Linux Mint 13 的模拟器。

这个问题的根源是:

INSTRUMENTATION_STATUS: stream=
Test results for WatcherResultPrinter=
Time: 0.007

OK (0 tests)


INSTRUMENTATION_STATUS_CODE: -1

这是我在 Linux 下创建 jar 文件时得到的。如果我在 Windows 或 OSX 中构建它,一切似乎都很顺利。在这种特定情况下,只有一个测试,即按下“主页”按钮。

如果我在任何其他环境(osx/windows)下使用相同的代码和相同的步骤创建项目,测试将按预期运行。

我的问题是 - 为什么在 Linux 下创建 jar 时,测试运行程序无法找到类,而不是在平台下?我现在最好的也是唯一的猜测是编译时java路径设置不正确,因此jar文件构建不正确。在 Eclipse 中运行测试时,我最初得到了“ClassNotFoundException”,而在 osx/windows 上,测试将在 JUnit 中运行,但失败了。

我对此进行了深入研究,发现编译器都指向系统不同部分的不同 Java 版本。我修复了这个问题,删除了除了 java6jdk 的一个实例之外的所有内容,并检查了 JAVA_HOME、eclipse 构建路径和 java 编译路径都指向同一个实例。

在这一切之后,测试似乎仍在构建,但测试运行程序找不到它们。我在这里的知识已经结束,任何帮助将不胜感激!

谢谢

编辑:jar tvf:

spicy@ubuntu:~/workspace/TestOne/bin$ jar tvf testui1.jar 
0 Sun Apr 07 14:23:24 PDT 2013 META-INF/
103 Sun Apr 07 14:23:22 PDT 2013 META-INF/MANIFEST.MF
1052 Sun Apr 07 14:23:24 PDT 2013 classes.dex

编码:

package com.test;

import android.util.Log;

public class FirstTest extends UiAutomatorTestCase {

    public void thisTest() throws UiObjectNotFoundException {
        getUiDevice().pressHome();
        Log.i("HELP","HELP ME");
    }

}
4

1 回答 1

4

经过太多的工作和努力,我很尴尬地报告问题出在测试功能的命名上。如果函数以“test_”开头,那么自动机会找到测试。如果它不以“test_”开头,它会忽略它们。

呸!

于 2013-04-07T23:49:41.263 回答