如何在 AndroidStudio 中添加资源测试 android 库



我做了一个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...

最新更新