我试图在我的单元测试和仪器测试之间共享一些代码。我在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至少更容易忽略此错误吗?