2

我想运行一个Ui测试,并且每次运行applicatoin它都会在控制台中提供以下错误并关闭正在运行的应用程序。我已经导入了uiautomator.jar,android.jar & JUnit4库。我使用Eclipse。我在这里错过了什么?Android:运行时错误,而UiTesting

[2016年4月4日4时44分00秒 - UiTests]测试运行失败:仪表运行 失败,因为 '了java.lang.RuntimeException'

的TestClass

package android.support.v7.appcompat.test; 

import com.android.uiautomator.core.UiObject; 
import com.android.uiautomator.core.UiObjectNotFoundException; 
import com.android.uiautomator.core.UiSelector; 
import com.android.uiautomator.testrunner.UiAutomatorTestCase; 

public class DMTest extends UiAutomatorTestCase 
{ 
    public void testDemo() throws UiObjectNotFoundException 
    { 
     // setText 
     new UiObject(new UiSelector().description("edittext_brute")).setText("bazinga"); 

     // clickButton 
     //new UiObject(new UiSelector().description("button_done")).click(); 

     UiObject btDone = new UiObject(new UiSelector().description("button_done")); 
     btDone.click(); 
    } 

} 

清单

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="android.support.v7.appcompat.test" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="14" /> 

    <instrumentation 
    android:name="android.test.InstrumentationTestRunner" 
    android:targetPackage="com.example.sony.reel" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <uses-library android:name="android.test.runner" /> 
    </application> 

</manifest> 

编辑1:它让即使是testDemo()构造

编辑2内没有代码相同的异常:logcat的

找不到测试类...

04-04 07:25:48.539: E/AndroidRuntime(12026): FATAL EXCEPTION: main 
04-04 07:25:48.539: E/AndroidRuntime(12026): Process: com.example.sony.reel, PID: 12026 
04-04 07:25:48.539: E/AndroidRuntime(12026): java.lang.RuntimeException: Exception thrown in onCreate() of ComponentInfo{android.support.v7.appcompat.test/android.test.InstrumentationTestRunner}: java.lang.RuntimeException: Could not find test class. Class: android.support.v7.appcompat.test.DMTest 
04-04 07:25:48.539: E/AndroidRuntime(12026): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4599) 
04-04 07:25:48.539: E/AndroidRuntime(12026): at android.app.ActivityThread.access$1500(ActivityThread.java:148) 
04-04 07:25:48.539: E/AndroidRuntime(12026): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1353) 
04-04 07:25:48.539: E/AndroidRuntime(12026): at android.os.Handler.dispatchMessage(Handler.java:102) 
04-04 07:25:48.539: E/AndroidRuntime(12026): at android.os.Looper.loop(Looper.java:135) 
04-04 07:25:48.539: E/AndroidRuntime(12026): at android.app.ActivityThread.main(ActivityThread.java:5312) 
04-04 07:25:48.539: E/AndroidRuntime(12026): at java.lang.reflect.Method.invoke(Native Method) 
04-04 07:25:48.539: E/AndroidRuntime(12026): at java.lang.reflect.Method.invoke(Method.java:372) 
04-04 07:25:48.539: E/AndroidRuntime(12026): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901) 
04-04 07:25:48.539: E/AndroidRuntime(12026): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696) 
04-04 07:25:48.539: E/AndroidRuntime(12026): Caused by: java.lang.RuntimeException: Could not find test class. Class: android.support.v7.appcompat.test.DMTest 
04-04 07:25:48.539: E/AndroidRuntime(12026): at android.test.AndroidTestRunner.runFailed(AndroidTestRunner.java:255) 
04-04 07:25:48.539: E/AndroidRuntime(12026): at android.test.AndroidTestRunner.loadTestClass(AndroidTestRunner.java:89) 
04-04 07:25:48.539: E/AndroidRuntime(12026): at android.test.AndroidTestRunner.setTestClassName(AndroidTestRunner.java:50) 
04-04 07:25:48.539: E/AndroidRuntime(12026): at android.test.suitebuilder.TestSuiteBuilder.addTestClassByName(TestSuiteBuilder.java:78) 
04-04 07:25:48.539: E/AndroidRuntime(12026): at android.test.InstrumentationTestRunner.parseTestClass(InstrumentationTestRunner.java:444) 
04-04 07:25:48.539: E/AndroidRuntime(12026): at android.test.InstrumentationTestRunner.parseTestClasses(InstrumentationTestRunner.java:425) 
04-04 07:25:48.539: E/AndroidRuntime(12026): at android.test.InstrumentationTestRunner.onCreate(InstrumentationTestRunner.java:371) 
04-04 07:25:48.539: E/AndroidRuntime(12026): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4596) 
04-04 07:25:48.539: E/AndroidRuntime(12026): ... 9 more 
+0

你能发布完整的错误吗? – Rilwan

+0

这是唯一的错误,在控制台中有4个其他行,如:检测device..installing apk..launching ..然后这 – Zen

+0

顺便说一句,这是从一个Android测试项目在eclipse – Zen

回答

0

Android建议使用工作室为uiautomator测试项目和gradle建设。

对于您的情况,请尝试在测试类定义开始时添加@RunWith(AndroidJUnit4.class)注释。

如果您将此代码移至工作室,您的代码示例肯定会有效。或用ant进行编译并使用编译后的jar文件运行。