2

Ich versuche, einen UI-Test auszuführen, und jedes Mal, wenn ich die Anwendung ausführe gibt es den folgenden Fehler in der Konsole und schließt die App, die ausgeführt wird. Ich habe die uiautomator.jar, android.jar & JUnit4 Bibliotheken importiert. Ich benutze Eclipse. Was fehlt mir hier?Android: Laufzeitfehler während UiTesting

[2016.04.04 04.44.00 - UiTests] Testlauf fehlgeschlagen: Instrumentation Lauf wegen 'java.lang.RuntimeException'

Testclass

fehlgeschlagen
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(); 
    } 

} 

Manifest

<?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> 

Edit 1: Es gibt die gleiche Ausnahme, auch wenn kein Code dort im testDemo() Konstruktor ist

Edit 2: Logcat

konnte nicht Testklasse finden ...

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

können Sie den vollständigen Fehler posten? – Rilwan

+0

Das ist der einzige Fehler, es gibt 4 andere Zeilen in der Konsole, es ist wie: Erkennung von Gerät .. Installation apk..launching .. und dann das – Zen

+0

Btw, das läuft von einem Android-Test-Projekt in Eclipse – Zen

Antwort

0

Android empfiehlt, Studio für uiautomator Test-Projekte und Gradle für den Bau zu verwenden.

In Ihrem Fall versuchen Sie @RunWith(AndroidJUnit4.class) Annotation am Anfang Ihrer Testklassendefinition hinzuzufügen.

Ihr Code-Beispiel wird definitiv funktionieren, wenn Sie dies in Studio verschieben. Oder kompilieren Sie mit ant und führen Sie mit kompilierten JAR-Datei.