Android多模块测试依赖

标签 android unit-testing android-gradle-plugin build.gradle gradle-plugin

使用 Android Studio 3.0/android_gradle_version = '3.0.1'/gradle-4.5

假设我有两个 Android 模块

module-base
module-a

当我想从 module-a 中的 module-base 访问源代码时,我只需要在我的 模块-a.gradle

dependencies {
    implementation project(path: ':module-base')
}

但是,如果我想在模块 a 的测试中从模块库访问测试源怎么办? 这里不像上面那样工作

dependencies {
    testImplementation project(path: ':module-base')
}

我发现了很多建议(几年前的),内容类似于

compileTestJava.dependsOn tasks.getByPath(':module-base:testClasses')
testCompile files(project(':module-base').sourceSets.test.output.classesDir)

或者 testCompile 项目(':module-base).sourceSets.test.classes

但上述作品中没有人。从编译器的角度来看总是有问题:-/

有人可以帮助我如何在两个模块之间创建 Android 测试代码依赖关系吗?

最佳答案

如果其他人最终到达这里,实现此目的的一种方法是将目标模块定义为源集。假设 test-mdoule 是我们要从中导入内容的模块,我们可以这样做:

android {
    sourceSets {
        // non-instrumental test example
        test {
            java.srcDir project(":test-module").file("src/test/java")
        }
        // instrumental test example
        androidTest {
            java.srcDir project(":test-module").file("src/androidTest/java")
        }
    }
}

引用:https://jonnycaley.medium.com/sharing-test-code-in-a-multi-module-android-project-7ce4de788016

关于Android多模块测试依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49436559/

相关文章:

android - 命令失败,并在IONIC 4上显示退出代码

android - 抽屉导航项目未注册点击事件

安卓 "Not granting permission"错误

android - 泄漏在 xaml 中加载的自定义 View

gradle - 上载所有带有crashlytics的productFlavors

unit-testing - 使用 pytest 测试 Flask 应用程序时找不到 404

unit-testing - MSTest ClassInitialize 整个类(class)一次

Angular Testing 床 : Can't bind to 'ngModel' since it isn't a known property of 'ng-select'

android - 用于生成/清除多种产品 flavor 的Gradle脚本

android - Powermockito可以与Android Studio 1.2一起使用吗