android - 如何在AndroidStudio中为android库的androidTest添加资源
问题描述
我做了一个androidLibrary
包含一些Volley
请求类的项目,并想为其中一些请求编写一个单元测试。
我已经这样做了一百次,并且在几次尝试后它以某种方式工作,但从未在第一次尝试。
如果我通过 androidStudio 尝试这个
右键项目->新建->Android资源目录
您可以在 sourceSets “main”、“debug”和“release”之间进行选择。没有androidTest
选择。
如果我手动尝试,添加以下文件夹[moduleName]/src/androidTest/res/raw
并将文件放入其中(比如说 image.jpg),我不会通过R.raw.image
. 事实上,我根本无法访问R.raw
我的测试。
我还尝试了 Build->rebuild project 或 Build->clean 但没有成功。
在其他项目中,我有一个my.app.namespace.R
包含my.app.namespace.test.R
所有测试资源的 a。
所以我的问题是:我需要做什么才能res
向我的 androidTest 添加一个文件夹,该文件夹可以通过 访问R.[folder].[resId]
?
添加文件后我是否错过了一个关键步骤(即明确告诉 gradle)?
因为在 my 中添加这样的标签build.gradle
似乎也没有任何区别:
android {
sourceSets {
androidTest {
java.srcDirs = ['src/androidTest/java']
res.srcDirs = ['src/androidTest/res']
}
}
}
如果重要的话,我正在使用:
- 安卓工作室 3.1.2
- 毕业包装 4.4
- minSdkVersion 19
- targetSdkVersion 27
解决方案
在 Michael Krussel 的更新的帮助下,我弄清楚了发生了什么答案:
Android Studio不会自动编译my.app.namespace.test
包。您需要做的就是第一次运行测试,忽略AndroidStudio
可能出现的错误。
第一次运行后,您可以访问整个test
命名空间(包括*.test.R
类)
不需要额外的 gradle 配置(如sourceSets
上面的)!
推荐阅读
- sql - 在下一列定义中使用使用“AS”子句命名的列
- react-native - 仅以编程方式覆盖和控制 goBack
- javascript - 如何获取输入的值并在javascript和html中加上任意数字?
- r - 如何计算多个变量的比例
- laravel - 为什么在实践中路由设置为posts.destroy的链接会路由到posts.show
- javascript - 点击后关闭链接列表
- azure - Azure API“获取所有警报”没有价值
- sql - 使用 sql 查询通过帖子获取喜欢计数
- tensorflow - 为什么 tf.test.is_gpu_available() 没有提供真假,它卡住了?
- python - 如何在 HISTOGRAM、matplotlib 中设置 y 轴和 x 轴变量