Java 为androidTest源集配置res srcDirs
我想包括仅为测试而编译的资源 我的app module build.gradle文件中包含以下内容:Java 为androidTest源集配置res srcDirs,java,android,android-testing,build.gradle,Java,Android,Android Testing,Build.gradle,我想包括仅为测试而编译的资源 我的app module build.gradle文件中包含以下内容: android { ... sourceSets { androidTest { java.srcDirs = ['src/androidTest/java'] res.srcDirs = ['src/androidTest/res'] } } } javasrcdirs路径是正确的,但
android {
...
sourceSets {
androidTest {
java.srcDirs = ['src/androidTest/java']
res.srcDirs = ['src/androidTest/res']
}
}
}
javasrcdirs路径是正确的,但是如果我尝试从androidTest中的res目录获取资源,则无法找到该资源
我如何才能在androidTest目录中拥有仅用于测试的资源?结果表明,您不需要更改默认build.gradle文件中的任何内容 诀窍在于,对于
androidTest
中的资源,自动生成的R.java
文件是不同的
如果主源集中某个地方的R
导入语句如下所示:
import com.mycompany.myappname.R;
测试文件中R
的导入语句应如下所示:
import com.mycompany.myappname.test.R;
如果您有一个已设置了
应用程序uffix
的生成类型,您的src/androidTest/res
资源将位于.test.R
非常重要
i、 e
在
src/androidTest/res
中有一些资源吗?它们不在com.example.my.app.test
!如果您正在运行调试版本,则它们位于com.example.my.app.debug.test.R
也适用于我,但仅限于InstrumentationTestCase。如果在AndroidTestCase中使用它,资源ID就不一样了,我得到的是一个随机的PNG图像,而不是我请求的XML文件。你怎么会认为OP设置了applicationIdSuffix?
applicationId "com.example.my.app"
buildTypes {
debug {
applicationIdSuffix ".debug"
}
}