【问题标题】:How to add resources to androidTest for android library in AndroidStudio如何在AndroidStudio中为android库的androidTest添加资源
【发布时间】:2018-11-04 22:56:37
【问题描述】:

我创建了一个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

所以我的问题是: 我需要做什么才能将res 文件夹添加到我的androidTest 中,该文件夹可通过R.[folder].[resId] 访问?

添加文件后我是否错过了关键步骤(即明确告诉 gradle)?

因为在我的build.gradle 中添加这样的标签似乎也没有任何区别:

android {
    sourceSets {
        androidTest {
            java.srcDirs = ['src/androidTest/java']
            res.srcDirs = ['src/androidTest/res']
        }
    }
}

如果我正在使用这很重要:

  • Android Studio 3.1.2
  • gradle-wrapper 4.4
  • minSdkVersion 19
  • targetSdkVersion 27

【问题讨论】:

    标签: android unit-testing android-studio gradle android-resources


    【解决方案1】:

    我在the update of Michael Krussel的帮助下弄清楚了发生了什么答案:

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

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

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

    【讨论】:

    • 您如何访问资源?我得到Resources$NotFoundException 用于androidTest 字符串。
    猜你喜欢
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多