android - 如何向 Android Studio 项目添加新的源目录?

标签 android android-studio gradle tdd integration-testing

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

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

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

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

我的问题是:

  1. 我必须准确地在何处添加 sourceSets block ?在 build.gradle 中?在 app/build.gradle 中?在 android block 内的 app/build.gradle 中?

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

编辑:

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

Build variants window

最佳答案

这就够了:

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

关于您的第一个问题:productFlavors block 应该在您的app/build.gradle 中,在android 中> 阻止。

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

enter image description here

关于android - 如何向 Android Studio 项目添加新的源目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29895605/

相关文章:

java - 搜索适配器 onbind 方法中的 IndexOutofBounexception?

Android Geocoder 只返回一个地址

android - 在 Textview android :text 中插入和符号

android - 使用资源缩减和 Proguard 签署应用程序后应用程序崩溃

java - 在模块 classes.jar 中发现重复的类

java - 如何在junit中传递特定模式

android - 在 Nexus S 中插入可加载内核模块会重新启动它

java - ImageView不根据屏幕尺寸进行调整

Android Studio 如何修复无法创建类文件错误?

Gradle > = 4.6 : using java-library & java plugins simultaneously in multi-module build