在Android中使用Dagger生成的测试代码

Chr*_*han 4 android android-testing dagger-2

我正在尝试在我的android项目中使用Dagger2,如hitherejoe/Android-Boilerplate中所述.在我设置项目时,我在构建时遇到了错误.

Error:(30, 26) error: cannot find symbol variable DaggerTestComponent
Run Code Online (Sandbox Code Playgroud)

在深入研究文档和生成代码后,我发现代码不是在debug(/ app/build/generated/source/apt/debug /)文件夹中生成的,而是在test/debug中生成的(/ app/build/generated/source/apt/test/debug)文件夹.所以在我的测试源文件夹中无法导入生成的DaggerTestComponent.

任何线索如何将test/debug文件夹包含在源代码中?我的依赖如下

testCompile 'com.neenbedankt.gradle.plugins:android-apt:1.8'
compile "com.google.dagger:dagger:$DAGGER_VERSION"
apt "com.google.dagger:dagger-compiler:$DAGGER_VERSION"
provided 'javax.annotation:jsr250-api:1.0'
compile 'javax.inject:javax.inject:1'
testApt "com.google.dagger:dagger-compiler:$DAGGER_VERSION"
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Jef*_*ell 5

我有同样的问题...我通过添加生成的测试源目录来解决它:

android {
    sourceSets {
        // add dagger generated files (works only with debug build)
        test.java.srcDirs += ['build/generated/source/apt/test/debug']
    }
}
Run Code Online (Sandbox Code Playgroud)