UIAutomator在Linux上构建时运行0测试,但在其他平台上运行良好

时间:2013-04-06 22:23:33

标签: java android linux eclipse uiautomator

我在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");
    }

}

1 个答案:

答案 0 :(得分:4)

经过太多的工作和努力,我很尴尬地报告问题在于测试功能的命名。如果函数以'test_'开头,则automator会找到测试。如果它不以'test_'开头,则忽略它们。

尔加!