金阳光测试吧 关注:511贴子:1,319
  • 1回复贴,共1

Espresso的配置错误,求教!

只看楼主收藏回复

试着用espresso,但是在执行test——renew 的时候出现这样的错误
java.lang.NoClassDefFoundError: android.support.test.espresso.base.BaseLayerModule_ProvideFailureHanderFactory
at android.support.test.espresso.DaggerBaseLayerComponent.initialize(DaggerBaseLayerComponent.java:66)
at android.support.test.espresso.DaggerBaseLayerComponent.<init>(DaggerBaseLayerComponent.java:54)
at android.support.test.espresso.DaggerBaseLayerComponent.<init>(DaggerBaseLayerComponent.java:40)
at android.support.test.espresso.DaggerBaseLayerComponent$Builder.build(DaggerBaseLayerComponent.java:123)
at android.support.test.espresso.DaggerBaseLayerComponent.create(DaggerBaseLayerComponent.java:62)
at android.support.test.espresso.GraphHolder.baseLayer(GraphHolder.java:41)
at android.support.test.espresso.Espresso.<clinit>(Espresso.java:51)
at com.zhycheng.readerxls.test.EspressoRobotium.test_renew(EspressoRobotium.java:44)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:192)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:115)
at junit.framework.TestResult.runProtected(TestResult.java:133)
at android.support.test.internal.runner.junit3.DelegatingTestResult.runProtected(DelegatingTestResult.java:90)
at junit.framework.TestResult.run(TestResult.java:118)
at android.support.test.internal.runner.junit3.AndroidTestResult.run(AndroidTestResult.java:49)
at junit.framework.TestCase.run(TestCase.java:124)
at android.support.test.internal.runner.junit3.NonLeakyTestSuite$NonLeakyTest.run(NonLeakyTestSuite.java:63)
at junit.framework.TestSuite.runTest(TestSuite.java:243)
at junit.framework.TestSuite.run(TestSuite.java:238)
at android.support.test.internal.runner.junit3.DelegatingTestSuite.run(DelegatingTestSuite.java:103)
at android.support.test.internal.runner.junit3.AndroidTestSuite.run(AndroidTestSuite.java:63)
at android.support.test.internal.runner.junit3.JUnit38ClassRunner.run(JUnit38ClassRunner.java:90)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:27)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
at android.support.test.internal.runner.TestExecutor.execute(TestExecutor.java:54)
at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:228)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1732)
代码是
public class EspressoRobotium extends ActivityInstrumentationTestCase2<Activity>{
private Solo solo;
public EspressoRobotium() throws ClassNotFoundException {
super((Class<Activity>) Class.forName("com.example.ascloud.MainActivity"));
}
public void setUp() throws Exception {
super.setUp();
solo = new Solo(getInstrumentation(), getActivity());
}
protected void tearDown() throws Exception {
try {
runTestOnUiThread( new Runnable() {
@Override
public void run() {
}
});
} catch (Throwable e) {
e.printStackTrace();
}
super.tearDown();
}
public void test_renew() {
// Espresso.onView(ViewMatchers.withId(2131165200)).perform(ViewActions.click());
solo.sleep(2000);
solo.clickOnView(solo.getView("2131165200"));
solo.clickOnView(solo.getView("2131165201"));
solo.sleep(2000);
Espresso.onView(ViewMatchers.withText("输入设置")).perform(ViewActions.click());
solo.sleep(2000);
// solo.clickOnView(solo.getView("2131165200"));
// solo.clickOnView(solo.getView("2131165201"));
}
}
然后进入MainActivity之后是一个加载启动项的页面,加载完之后会自动跳转到其他的Activity。
之前报的错是再这个mainactivity的oncreate()函数里找不到 跳转目标activity这个类的错误,然后我干脆重新建立了一个工程,又出来了这个毛病,自己折腾了三天了,实在头大,求教!


1楼2015-11-09 10:20回复
    用这个工具和robotium差不多。你还是多摸索下,环境问题是很花时间的,需要一步步排查。看你报错是类没找到,肯定包名和类库环境没配置好。


    IP属地:北京2楼2015-11-09 10:33
    回复