2

我已经尝试了几个小时来使用 Espresso 2 在 Eclipse 上运行一个简单的测试,但没有成功。似乎没有太多的信息,只有零碎的信息。我将不胜感激任何提示。这就是我所拥有的:

我要测试的项目只是创建的默认项目。

对于测试项目:

AndroidManifest.xml

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

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

    <instrumentation
        android:name="android.support.test.runner.AndroidJUnitRunner"
        android:targetPackage="com.projecttotest" />

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

</manifest>

MainActivityTest.java 文件

package com.projecttotest.test;

import org.junit.Test;

import com.projecttotest.MainActivity;

import android.support.test.espresso.assertion.ViewAssertions;
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;

import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.matcher.ViewMatchers.withText;
import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;


public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {

    public MainActivityTest(Class<MainActivity> activityClass) {
        super(activityClass);
    }

    public MainActivityTest() {
        super(MainActivity.class);
        Log.d("test", "in constructor");
    }

    @Override
    public void setUp() throws Exception {
        Log.v("test","5");
        super.setUp();
        Log.v("test","4");
        // Espresso will not launch our activity for us, we must launch it via getActivity().
        getActivity();
    }

    @Test
    public void testShouldBeAbleToLaunchMainScreen()
    {
        Log.d("test", "in testShouldBeAbleToLaunchMainScreen");
        onView(withText("Hello world!")).check(ViewAssertions.matches(isDisplayed()));
    }
}

我的图书馆包括:

在此处输入图像描述

这是我的日志:

04-29 14:03:00.261: I/ActivityManager(280): Start proc com.projecttotest for added application com.projecttotest: pid=6780 uid=10072 gids={50072, 1028}
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/InstrumentationRunListener; (677)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/InstrumentationRunListener;' failed
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/InstrumentationResultPrinter; (401)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/InstrumentationResultPrinter;' failed
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/InstrumentationRunListener; (677)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/InstrumentationRunListener;' failed
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/CoverageListener; (401)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/CoverageListener;' failed
04-29 14:03:00.265: E/dalvikvm(6780): Could not find class 'android.support.test.internal.runner.listener.CoverageListener', referenced from method android.support.test.runner.AndroidJUnitRunner.addCoverageListener
04-29 14:03:00.265: W/dalvikvm(6780): VFY: unable to resolve new-instance 398 (Landroid/support/test/internal/runner/listener/CoverageListener;) in Landroid/support/test/runner/AndroidJUnitRunner;
04-29 14:03:00.265: D/dalvikvm(6780): VFY: replacing opcode 0x22 at 0x0012
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/DelayInjector; (677)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/DelayInjector;' failed
04-29 14:03:00.265: E/dalvikvm(6780): Could not find class 'android.support.test.internal.runner.listener.DelayInjector', referenced from method android.support.test.runner.AndroidJUnitRunner.addDelayListener
04-29 14:03:00.265: W/dalvikvm(6780): VFY: unable to resolve new-instance 399 (Landroid/support/test/internal/runner/listener/DelayInjector;) in Landroid/support/test/runner/AndroidJUnitRunner;
04-29 14:03:00.265: D/dalvikvm(6780): VFY: replacing opcode 0x22 at 0x0014
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/DelayInjector; (677)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/DelayInjector;' failed
04-29 14:03:00.265: E/dalvikvm(6780): Could not find class 'android.support.test.internal.runner.listener.DelayInjector', referenced from method android.support.test.runner.AndroidJUnitRunner.addDelayListener
04-29 14:03:00.265: W/dalvikvm(6780): VFY: unable to resolve new-instance 399 (Landroid/support/test/internal/runner/listener/DelayInjector;) in Landroid/support/test/runner/AndroidJUnitRunner;
04-29 14:03:00.265: D/dalvikvm(6780): VFY: replacing opcode 0x22 at 0x002b
04-29 14:03:00.265: E/dalvikvm(6780): Could not find class 'org.junit.runner.notification.RunListener', referenced from method android.support.test.runner.AndroidJUnitRunner.addListenerByClassName
04-29 14:03:00.265: W/dalvikvm(6780): VFY: unable to resolve const-class 677 (Lorg/junit/runner/notification/RunListener;) in Landroid/support/test/runner/AndroidJUnitRunner;
04-29 14:03:00.265: D/dalvikvm(6780): VFY: replacing opcode 0x1c at 0x000d
04-29 14:03:00.265: W/dalvikvm(6780): VFY: unable to find class referenced in signature (Lorg/junit/runner/JUnitCore;)
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/InstrumentationRunListener; (677)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/InstrumentationRunListener;' failed
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/SuiteAssignmentPrinter; (401)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/SuiteAssignmentPrinter;' failed
04-29 14:03:00.265: E/dalvikvm(6780): Could not find class 'android.support.test.internal.runner.listener.SuiteAssignmentPrinter', referenced from method android.support.test.runner.AndroidJUnitRunner.addListeners
04-29 14:03:00.265: W/dalvikvm(6780): VFY: unable to resolve new-instance 403 (Landroid/support/test/internal/runner/listener/SuiteAssignmentPrinter;) in Landroid/support/test/runner/AndroidJUnitRunner;
04-29 14:03:00.265: D/dalvikvm(6780): VFY: replacing opcode 0x22 at 0x0008
04-29 14:03:00.265: E/dalvikvm(6780): Could not find class 'org.junit.internal.TextListener', referenced from method android.support.test.runner.AndroidJUnitRunner.addListeners
04-29 14:03:00.265: W/dalvikvm(6780): VFY: unable to resolve new-instance 654 (Lorg/junit/internal/TextListener;) in Landroid/support/test/runner/AndroidJUnitRunner;
04-29 14:03:00.265: D/dalvikvm(6780): VFY: replacing opcode 0x22 at 0x0033
04-29 14:03:00.265: E/dalvikvm(6780): Could not find class 'org.junit.runner.notification.RunListener', referenced from method android.support.test.runner.AndroidJUnitRunner.reportRunEnded
04-29 14:03:00.265: W/dalvikvm(6780): VFY: unable to resolve check-cast 677 (Lorg/junit/runner/notification/RunListener;) in Landroid/support/test/runner/AndroidJUnitRunner;
04-29 14:03:00.265: D/dalvikvm(6780): VFY: replacing opcode 0x1f at 0x000e
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/InstrumentationRunListener; (677)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/InstrumentationRunListener;' failed
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/InstrumentationResultPrinter; (401)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/InstrumentationResultPrinter;' failed
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/InstrumentationRunListener; (677)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/InstrumentationRunListener;' failed
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/InstrumentationResultPrinter; (401)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/InstrumentationResultPrinter;' failed
04-29 14:03:00.265: W/dalvikvm(6780): VFY: unable to find class referenced in signature (Landroid/support/test/internal/runner/listener/InstrumentationResultPrinter;)
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/InstrumentationRunListener; (677)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/InstrumentationRunListener;' failed
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/InstrumentationResultPrinter; (401)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/InstrumentationResultPrinter;' failed
04-29 14:03:00.265: W/dalvikvm(6780): VFY: unable to find class referenced in signature (Landroid/support/test/internal/runner/listener/InstrumentationResultPrinter;)
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/InstrumentationRunListener; (677)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/InstrumentationRunListener;' failed
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/InstrumentationResultPrinter; (401)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/InstrumentationResultPrinter;' failed
04-29 14:03:00.265: I/dalvikvm(6780): Could not find method android.support.test.internal.runner.listener.InstrumentationResultPrinter.reportProcessCrash, referenced from method android.support.test.runner.AndroidJUnitRunner.onException
04-29 14:03:00.265: W/dalvikvm(6780): VFY: unable to resolve virtual method 1728: Landroid/support/test/internal/runner/listener/InstrumentationResultPrinter;.reportProcessCrash (Ljava/lang/Throwable;)V
04-29 14:03:00.265: D/dalvikvm(6780): VFY: replacing opcode 0x6e at 0x0006
04-29 14:03:00.265: E/dalvikvm(6780): Could not find class 'org.junit.runner.JUnitCore', referenced from method android.support.test.runner.AndroidJUnitRunner.onStart
04-29 14:03:00.265: W/dalvikvm(6780): VFY: unable to resolve new-instance 666 (Lorg/junit/runner/JUnitCore;) in Landroid/support/test/runner/AndroidJUnitRunner;
04-29 14:03:00.265: D/dalvikvm(6780): VFY: replacing opcode 0x22 at 0x0023
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/InstrumentationRunListener; (677)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/InstrumentationRunListener;' failed
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/CoverageListener; (401)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/CoverageListener;' failed
04-29 14:03:00.265: D/dalvikvm(6780): DexOpt: unable to opt direct call 0x06b3 at 0x14 in Landroid/support/test/runner/AndroidJUnitRunner;.addCoverageListener
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/DelayInjector; (677)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/DelayInjector;' failed
04-29 14:03:00.265: D/dalvikvm(6780): DexOpt: unable to opt direct call 0x06b9 at 0x16 in Landroid/support/test/runner/AndroidJUnitRunner;.addDelayListener
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/DelayInjector; (677)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/DelayInjector;' failed
04-29 14:03:00.265: D/dalvikvm(6780): DexOpt: unable to opt direct call 0x06b9 at 0x2f in Landroid/support/test/runner/AndroidJUnitRunner;.addDelayListener
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/InstrumentationRunListener; (677)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/InstrumentationRunListener;' failed
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/SuiteAssignmentPrinter; (401)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/SuiteAssignmentPrinter;' failed
04-29 14:03:00.265: D/dalvikvm(6780): DexOpt: unable to opt direct call 0x06d7 at 0x0a in Landroid/support/test/runner/AndroidJUnitRunner;.addListeners
04-29 14:03:00.265: D/dalvikvm(6780): DexOpt: unable to opt direct call 0x0975 at 0x35 in Landroid/support/test/runner/AndroidJUnitRunner;.addListeners
04-29 14:03:00.265: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/LogRunListener; (677)
04-29 14:03:00.265: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/LogRunListener;' failed
04-29 14:03:00.265: D/dalvikvm(6780): DexOpt: unable to opt direct call 0x06cf at 0x3d in Landroid/support/test/runner/AndroidJUnitRunner;.addListeners
04-29 14:03:00.269: D/dalvikvm(6780): GC_CONCURRENT freed 357K, 5% free 8889K/9276K, paused 1ms+0ms, total 3ms
04-29 14:03:00.269: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/InstrumentationRunListener; (677)
04-29 14:03:00.269: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/InstrumentationRunListener;' failed
04-29 14:03:00.269: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/InstrumentationResultPrinter; (401)
04-29 14:03:00.269: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/InstrumentationResultPrinter;' failed
04-29 14:03:00.269: D/dalvikvm(6780): DexOpt: unable to opt direct call 0x06bd at 0x45 in Landroid/support/test/runner/AndroidJUnitRunner;.addListeners
04-29 14:03:00.269: W/dalvikvm(6780): Unable to resolve superclass of Landroid/support/test/internal/runner/listener/ActivityFinisherRunListener; (677)
04-29 14:03:00.269: W/dalvikvm(6780): Link of class 'Landroid/support/test/internal/runner/listener/ActivityFinisherRunListener;' failed
04-29 14:03:00.269: D/dalvikvm(6780): DexOpt: unable to opt direct call 0x06af at 0x56 in Landroid/support/test/runner/AndroidJUnitRunner;.addListeners
04-29 14:03:00.269: D/dalvikvm(6780): DexOpt: unable to opt direct call 0x0992 at 0x25 in Landroid/support/test/runner/AndroidJUnitRunner;.onStart
04-29 14:03:00.269: I/MonitoringInstrumentation(6780): Instrumentation Started!
04-29 14:03:00.269: I/AndroidJUnitRunner(6780): Setting context classloader to 'dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/android.test.runner.jar", zip file "/data/app/com.projecttotest.test-1.apk", zip file "/data/app/com.projecttotest-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.projecttotest.test-1, /data/app-lib/com.projecttotest-1, /system/lib]]]', Original: 'dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/android.test.runner.jar", zip file "/data/app/com.projecttotest.test-1.apk", zip file "/data/app/com.projecttotest-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.projecttotest.test-1, /data/app-lib/com.projecttotest-1, /system/lib]]]'
04-29 14:03:00.269: I/MonitoringInstrumentation(6780): Activities that are still in CREATED to PAUSED: 0
04-29 14:03:00.269: I/MonitoringInstrumentation(6780): waitForActivitiesToComplete() took: 0ms
04-29 14:03:00.273: D/AndroidRuntime(6770): Shutting down VM
04-29 14:03:00.273: D/jdwp(6770): Got wake-up signal, bailing out of select
04-29 14:03:00.273: D/dalvikvm(6770): Debugger has detached; object registry had 1 entries
04-29 14:03:00.473: I/ActivityManager(280): Force stopping package com.projecttotest appid=10072 user=0
04-29 14:03:00.473: I/ActivityManager(280): Killing proc 6780:com.projecttotest/u0a10072: force stop com.projecttotest
4

1 回答 1

0

这是我使用 Eclipse 打包以使用 Espresso2.0 和 Cucumber 进行测试的库:

https://github.com/neoranga55/espresso-cucumber

您可以查看库配置以及使用该库的演示 Eclipse 项目。

于 2015-09-10T21:40:21.440 回答