使用 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/