我做了一个androidLibrary
项目,其中包含一些Volley
请求类, 并希望为其中一些请求编写单元测试。
我已经这样做了一百次,经过几次尝试后它以某种方式起作用,但从未在第一次尝试中。
如果我通过安卓工作室尝试这个
右键单击项目->新>Android资源目录
您可以在源代码集"主要","调试"和"发布"之间进行选择。没有androidTest
选择。
如果我手动尝试,请添加以下文件夹[moduleName]/src/androidTest/res/raw
并在里面放一个文件(比如说图像.jpg(,我没有通过R.raw.image
获得参考。事实上,我根本无法访问测试中的R.raw
。
我还尝试了一个构建>重建项目或构建>清理,但没有成功。
在其他项目中,我有一个my.app.namespace.R
,沿着一个包含所有测试资源的my.app.namespace.test.R
。
所以我的问题是: 我需要做什么才能将res
文件夹添加到我的 androidTest,该文件夹可通过R.[folder].[resId]
访问?
添加文件后我是否错过了关键步骤(即明确告诉 gradle(?
因为在我的build.gradle
中添加这样的标签似乎也没有任何区别:
android {
sourceSets {
androidTest {
java.srcDirs = ['src/androidTest/java']
res.srcDirs = ['src/androidTest/res']
}
}
}
如果重要,我正在使用:
- 安卓工作室 3.1.2
- 格拉德尔包装器 4.4
- minSdkVersion 19
- 目标Sdk版本27
在迈克尔·克鲁塞尔的更新的帮助下,我想出了发生了什么 回答:
Android Studio不会自动编译my.app.namespace.test
包。您需要做的就是第一次运行测试,忽略AndroidStudio
可能出现的错误。
第一次运行后,您可以访问整个test
命名空间(包括*.test.R
类(
不需要额外的 gradle 配置(如上面的sourceSets
(!
如果您遇到类似的错误,我建议在尝试重建/运行插桩测试之前使缓存失效 - 至少这确实在 Android Studio 2022.1.1 补丁 2 上帮助了我。
为此,请导航到Files -> Invalidate Caches...