wangyao5 / android-test-kit

Automatically exported from code.google.com/p/android-test-kit
0 stars 0 forks source link

upgrade to dagger 1.2 #42

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Please upgrade to dagger 1.2
Even with the unbundled jars it does not seem to be possible to test with 
espresso when an android app already is using Dagger 1.2. itself

What steps will reproduce the problem?
1. build an android app with dagger 1.2
2. build with gradle with the unbundled jars as shown here
http://stackoverflow.com/questions/19646529/using-android-gradle-dagger-to-run-i
nstrumenttests
(except for dagger 1.2 instead of dagger 1.1)

What is the expected output? What do you see instead?

You will get IllegalAccessErrors on device when the application tries to create 
the dagger object graph

It works with normal instrumentation tests (without Espresso) so it is related 
to Espresso

When building the app with older Dagger 1.1 everything works fine

What version of the product are you using? On what operating system?
espresso 1.1
dagger 1.2

Please provide any additional information below.

Original issue reported on code.google.com by dpreuss...@googlemail.com on 14 Jan 2014 at 9:53

GoogleCodeExporter commented 9 years ago
For completeness, please share the full stack trace of IllegalAccessError(s) 
you're seeing when trying with the unbundled setup.

Original comment by vale...@google.com on 14 Jan 2014 at 7:42

GoogleCodeExporter commented 9 years ago
Please update Espresso to work with Dagger 1.2.

Original comment by jmulia...@gmail.com on 21 Jan 2014 at 1:44

GoogleCodeExporter commented 9 years ago
here is the stacktrace and it shows what's the problem. There seems to be some 
internal changes in dagger that made it incompatible with 1.1 builds:

01-21 09:58:13.143: I/TestRunner(2923): failed: 
testEnterSomeValues(com.groupon.merchant.redemption.RedeemActivityTest)
01-21 09:58:13.143: I/TestRunner(2923): ----- begin exception -----
01-21 09:58:13.143: I/TestRunner(2923): java.lang.NoSuchMethodError: 
dagger.internal.ModuleAdapter.<init>
01-21 09:58:13.143: I/TestRunner(2923):     at 
com.google.android.apps.common.testing.ui.espresso.GraphHolder$EspressoModule$$M
oduleAdapter.<init>(GraphHolder$EspressoModule$$ModuleAdapter.java:17)
01-21 09:58:13.143: I/TestRunner(2923):     at 
java.lang.Class.newInstanceImpl(Native Method)
01-21 09:58:13.143: I/TestRunner(2923):     at 
java.lang.Class.newInstance(Class.java:1130)
01-21 09:58:13.143: I/TestRunner(2923):     at 
dagger.internal.Loader.instantiate(Loader.java:84)
01-21 09:58:13.143: I/TestRunner(2923):     at 
dagger.internal.FailoverLoader$1.create(FailoverLoader.java:42)
01-21 09:58:13.143: I/TestRunner(2923):     at 
dagger.internal.FailoverLoader$1.create(FailoverLoader.java:40)
01-21 09:58:13.143: I/TestRunner(2923):     at 
dagger.internal.Memoizer.get(Memoizer.java:56)
01-21 09:58:13.143: I/TestRunner(2923):     at 
dagger.internal.FailoverLoader.getModuleAdapter(FailoverLoader.java:57)
01-21 09:58:13.143: I/TestRunner(2923):     at 
dagger.internal.Modules.loadModules(Modules.java:40)
01-21 09:58:13.143: I/TestRunner(2923):     at 
dagger.ObjectGraph$DaggerObjectGraph.makeGraph(ObjectGraph.java:166)
01-21 09:58:13.143: I/TestRunner(2923):     at 
dagger.ObjectGraph$DaggerObjectGraph.access$000(ObjectGraph.java:135)
01-21 09:58:13.143: I/TestRunner(2923):     at 
dagger.ObjectGraph.create(ObjectGraph.java:127)
01-21 09:58:13.143: I/TestRunner(2923):     at 
com.google.android.apps.common.testing.ui.espresso.GraphHolder.graph(GraphHolder
.java:32)
01-21 09:58:13.143: I/TestRunner(2923):     at 
com.google.android.apps.common.testing.ui.espresso.Espresso.espressoGraph(Espres
so.java:36)
01-21 09:58:13.143: I/TestRunner(2923):     at 
com.google.android.apps.common.testing.ui.espresso.Espresso.onView(Espresso.java
:51)
01-21 09:58:13.143: I/TestRunner(2923):     at 
com.groupon.merchant.redemption.RedeemActivityTest.testEnterSomeValues(RedeemAct
ivityTest.java:18)
01-21 09:58:13.143: I/TestRunner(2923):     at 
java.lang.reflect.Method.invokeNative(Native Method)
01-21 09:58:13.143: I/TestRunner(2923):     at 
java.lang.reflect.Method.invoke(Method.java:525)
01-21 09:58:13.143: I/TestRunner(2923):     at 
android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
01-21 09:58:13.143: I/TestRunner(2923):     at 
android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
01-21 09:58:13.143: I/TestRunner(2923):     at 
android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTes
tCase2.java:192)
01-21 09:58:13.143: I/TestRunner(2923):     at 
junit.framework.TestCase.runBare(TestCase.java:134)
01-21 09:58:13.143: I/TestRunner(2923):     at 
junit.framework.TestResult$1.protect(TestResult.java:115)
01-21 09:58:13.143: I/TestRunner(2923):     at 
junit.framework.TestResult.runProtected(TestResult.java:133)
01-21 09:58:13.143: I/TestRunner(2923):     at 
junit.framework.TestResult.run(TestResult.java:118)
01-21 09:58:13.143: I/TestRunner(2923):     at 
junit.framework.TestCase.run(TestCase.java:124)
01-21 09:58:13.143: I/TestRunner(2923):     at 
android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
01-21 09:58:13.143: I/TestRunner(2923):     at 
android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
01-21 09:58:13.143: I/TestRunner(2923):     at 
android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:55
4)
01-21 09:58:13.143: I/TestRunner(2923):     at 
com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunne
r.onStart(GoogleInstrumentationTestRunner.java:167)
01-21 09:58:13.143: I/TestRunner(2923):     at 
android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)
01-21 09:58:13.143: I/TestRunner(2923): ----- end exception -----
01-21 09:58:13.143: I/TestRunner(2923): finished: 
testEnterSomeValues(com.groupon.merchant.redemption.RedeemActivityTest)

Original comment by dpreuss...@googlemail.com on 21 Jan 2014 at 10:06

GoogleCodeExporter commented 9 years ago
Is it possible to get an ETA of this? Thanks. 

Original comment by lyfort...@gmail.com on 27 Feb 2014 at 11:51

GoogleCodeExporter commented 9 years ago
Any news about ETA? Thnaks!

Original comment by d2l.qamo...@gmail.com on 19 Mar 2014 at 3:22

GoogleCodeExporter commented 9 years ago
I'd like to point out that this : 
https://github.com/JakeWharton/double-espresso works with gradle for us. With 
dagger 1.2 and no extra hacks.

Original comment by aagaa...@gmail.com on 19 Mar 2014 at 5:59

GoogleCodeExporter commented 9 years ago
Anyone has a workaround for this?

Original comment by dnkoutso@gmail.com on 24 Apr 2014 at 11:25

GoogleCodeExporter commented 9 years ago
https://github.com/JakeWharton/double-espresso :)

Original comment by aagaa...@gmail.com on 25 Apr 2014 at 6:42

GoogleCodeExporter commented 9 years ago
For those that want Espresso and Robolectric, Jake Wharton's double-espresso 
does not work. So I recompiled the current master of espresso against Dagger 
1.2.1 and published the Maven-ready artifacts here: 
https://github.com/tommyd3mdi/mvn

Original comment by m...@thomaskeller.biz on 5 Jun 2014 at 1:48

GoogleCodeExporter commented 9 years ago
This (https://github.com/tommyd3mdi/mvn) isn't working for me. Attempting to 
access https://raw.githubusercontent.com/tommyd3mdi/mvn/master results in a 400 
error. 

Double-espresso isn't working for me. I'm not able to exclude Espresso tests 
from my Robolectric run and thus compilation errors ensue. 

Original comment by gloesch-...@weddingwire.com on 6 Oct 2014 at 6:04

GoogleCodeExporter commented 9 years ago
@gloe...

The latter is the maven repository URL, there is no whatsoever directory index 
page expected. Just add it as additional repository location as stated on the 
project page.

Original comment by m...@thomaskeller.biz on 7 Oct 2014 at 8:05

GoogleCodeExporter commented 9 years ago
Hm... I'll have to take another look. I thought I followed the instructions, 
and it didn't work. AS said it couldn't find the lib. Very possible I had 
something else going on. 

Original comment by gloesch-...@weddingwire.com on 7 Oct 2014 at 12:52

GoogleCodeExporter commented 9 years ago
Fixed in Espresso 2.0

Original comment by vale...@google.com on 20 Dec 2014 at 4:33