首页 > 解决方案 > 如何在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']
        }
    }
}

如果重要的话,我正在使用:

标签: androidunit-testingandroid-studiogradleandroid-resources

解决方案


在 Michael Krussel 的更新的帮助下,我弄清楚了发生了什么答案:

Android Studio不会自动编译my.app.namespace.test包。您需要做的就是第一次运行测试,忽略AndroidStudio可能出现的错误。

第一次运行后,您可以访问整个test命名空间(包括*.test.R类)

不需要额外的 gradle 配置(如sourceSets上面的)!


推荐阅读