Dagger+Robolectric+Gradle+APT - source not generated for test module -
Dagger+Robolectric+Gradle+APT - source not generated for test module -
(question available github repo here)
edit: looks issue android-apt not playing nicely robolectric. 'gradle clean assembledebugtest' generate test sources, 'gradle clean test' not. think android-apt need modified work case.
edit 2: solved problem changing temporarily using compile rather apt, androidtestapt, or provided. question remain open though, because shouldn't including stuff in our apks.
i have dependency in project requires android apt plugin. unfortunately, can't test pass when apt plugin applied.
here's brief overview of project structure:
src ├───androidtest/java/com.example.myapplication │ ├───mytest │ ├───testmodule │ └───testmyapplication [extends application] │ └───main/java/com.example.myapplication ├───myapplication └───mymodule testmyapplication overrides getmodules() method in myapplication , adds testmodule.
my dependencies section looks this:
dependencies { compile 'com.squareup.dagger:dagger:1.2.2' apt 'com.squareup.dagger:dagger-compiler:1.2.2' androidtestapt 'com.squareup.dagger:dagger-compiler:1.2.2' androidtestcompile 'junit:junit:4.11' androidtestcompile 'org.robolectric:robolectric:2.3' } yet still, error @ runtime:
java.lang.runtimeexception: java.lang.illegalstateexception: module adapter class com.example.myapplication.testmodule not loaded. please ensure code generation run module.
if disable android-apt , utilize provides instead of apt , androidtestapt, works great!
notably, provides not work if android-apt plugin applied.
for finish source, please check out repo here illustrate issue: https://github.com/jacobtabak/robolectric-dagger-skeleton
there 3 branches -
master, original case want work provided, works using provided , has android-apt plugin disabled aptfail, exact same case above, except android-apt plugin applied, fails. thanks! reply accepted must not used 'compile' dagger compiler.
gradle robolectric apt dagger
Comments
Post a Comment