Android共享在test和androidTest之间生成代码

时间:2016-10-07 22:41:31

标签: android unit-testing android-studio

我试图在我的单元测试和仪器测试之间共享一些代码。我在build.gradle中实现了类似下面的内容:

sourceSets {
    String sharedTestDir = 'src/sharedTest/java'
    test {
        java.srcDir sharedTestDir
    }
    androidTest {
        java.srcDir sharedTestDir
    }
}

这似乎适用于普通代码。但是,从注释生成的代码似乎只会在Android Studio中产生问题。 (代码运行很好,但它在Android Studio中产生红色波形)基本上,Android Studio似乎无法找到生成在src / sharedTest中的代码的生成类 - 即使实际建设很好。

如果它有用,生成的类来自Dagger(因为我在两种类型的测试之间共享一个组件/模块)。我有一个自定义的Application对象,它位于sharedTest中,这是我注意到Android Studio错误的地方:

createApplicationComponent() {
    return DaggerMockApplicationComponent.create();
}

我还在test和androidTest中添加了apt命令:

dependencies {
    testApt 'com.google.dagger:dagger-compiler:2.7'
    androidTestApt 'com.google.dagger:dagger-compiler:2.7'
}

我在这里对源集的理解中明显遗漏了一些东西。有没有更简洁的方法来共享测试和androidTest之间的代码?有没有办法让Android Studio看到这个生成的代码?或者,最糟糕的情况是,我可以让Android Studio至少更容易忽略此错误吗?

0 个答案:

没有答案