[英]UIAutomator runs 0 tests when built on Linux, but works fine on other platforms
我在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");
}
}
经过太多的工作和努力,我很尴尬地报告问题在于测试功能的命名。 如果函数以'test_'开头,则automator会找到测试。 如果它不以'test_'开头,则忽略它们。
尔加!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.