【问题标题】:How to add a new source directory to an Android Studio project?如何将新的源目录添加到 Android Studio 项目?
【发布时间】:2015-04-27 12:20:08
【问题描述】:

所以最终我试图将我的集成测试与 Android Studio 项目中的单元测试分开。我找到了一些关于这个主题的资源:

所有这些似乎表明要走的路是为集成测试创建一个新的源集,然后创建一个新的测试任务,该任务在该源集中构建和运行测试。我无法通过创建 Android Studio 识别的源集的第一步。

这是我在 app/build.gradle 中的内容,它构建时没有错误,但不会生成 integrationTest 源根目录,我可以将类添加到:

android{
    ...
    sourceSets{
        integrationTest {
           java.srcDir('src/integrationTest/java')
        }
    }
}

我的问题是:

  1. 我必须在哪里添加 sourceSets 块?在 build.gradle 中?在应用程序/build.gradle 中?在 android 块内的 app/build.gradle 中?

  2. 一旦我使用正确的语法在正确的位置添加了我的源集,这是否足以让 Android Studio 检测并在 UI 中与主要和测试源一起显示它,或者是否有其他步骤?

编辑:

我已尝试按照 marius 回答中的说明进行操作,但 integrationTest 未显示在我的构建变体中。这是我所看到的:

【问题讨论】:

    标签: android android-studio gradle tdd integration-testing


    【解决方案1】:

    这就够了:

    android{
        ...
        productFlavors{
            integrationTest {
            }
        }
    }
    

    关于您的第一个问题productFlavors 块应该在您的 app/build.gradle 中,在 android 块内。

    关于您的第二个问题:将其添加到 build.gradle 文件后,您还需要创建文件夹 /src/integrationTest/src/integrationTest/java 。完成后,同步您的 gradle 文件并从 Build Variant 窗口中选择新的 Build Variant,以便 IDE 将其检测为活动源文件夹。

    【讨论】:

    • 感谢您的回答 - 现在我已将上面的块添加到 android 块内的 app/build.gradle 中,并创建了文件夹 /src/integrationTest/src/integrationTest/java,以及我已经同步了我的 gradle 文件。当我转到build variant 窗口(从左侧栏中选择)时,我没有看到任何对 integrationTest 的引用。我可以从“测试工件”下拉列表中选择“单元测试”或“Android 仪器测试”,或者我可以从应用/构建变体下拉列表中选择“调试”或“发布”。我错过了什么吗?
    • 也许您正在从下拉列表中选择“测试工件”。在“模块构建变体”列表右侧的“测试工件”下方还有另一个下拉列表。编辑了我的答案以包含图片。
    • 是否在其他地方指定了这些构建变体?我有那个下拉菜单,但唯一的选项是“调试”和“发布”。 “integrationTest”没有显示在那里。
    • 我在答案中添加了一个屏幕截图以显示我所看到的。
    • 刚刚编辑了我的答案。有一个错误 - 我离开了 'sourceSets' 而不是 'productFlavors'。
    猜你喜欢
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    • 2020-01-02
    • 2019-02-19
    • 2013-05-11
    • 1970-01-01
    相关资源
    最近更新 更多