Mat*_*gan 12 java android android-testing build.gradle
我想要包含仅用于测试的资源.
我的app模块build.gradle文件中有以下内容:
android {
...
sourceSets {
androidTest {
java.srcDirs = ['src/androidTest/java']
res.srcDirs = ['src/androidTest/res']
}
}
}
Run Code Online (Sandbox Code Playgroud)
java srcDirs路径是正确的,但如果我尝试从androidTest中的res目录获取资源,则无法找到该资源.
如何在androidTest目录中拥有仅包含在测试中的资源?
Mat*_*gan 16
事实证明,您无需更改默认build.gradle文件中的任何内容.
诀窍是自动生成的R.java
文件对于资源不同androidTest
.
如果R
主源集中某处的import语句如下所示:
import com.mycompany.myappname.R;
Run Code Online (Sandbox Code Playgroud)
R
测试文件中的import语句应如下所示:
import com.mycompany.myappname.test.R;
Run Code Online (Sandbox Code Playgroud)
jos*_*ick 11
如果你有一个你设置的构建类型applicationIdSuffix
,你的src/androidTest/res
资源将是<applicationId><applicationIdSuffix>.test.R
!!!!! 非常重要 !!!
即
applicationId "com.example.my.app"
buildTypes {
debug {
applicationIdSuffix ".debug"
}
}
Run Code Online (Sandbox Code Playgroud)
有一些资源src/androidTest/res
吗?他们不在com.example.my.app.test
!如果您正在运行调试版本,那么它们就是com.example.my.app.debug.test.R
!!!!