类似的问题:Sharing code between Android Instrumentation Tests and Unit Tests in Android Studio
我的设置如下:
src/test
包含单元测试的文件夹。这些可以是Java或Kotlin类src/androidTest
包含检测测试。这些也可以是Java或Kotlin类src/sharedTest
是一个文件夹,其中包含一系列在单元测试和测试测试之间共享的工具。此共享在gradle中定义为:
sourceSets {
test.java.srcDirs += 'src/sharedTest/java'
androidTest.java.srcDirs += 'src/sharedTest/java'
}
这允许src/test
或src/androidTest
中的任何 Java 类访问utils。但不是Kotlin单元测试。我的假设是它们没有被添加到sourceSets。
我的问题是:如何添加它们?我试过了:
sourceSets {
test.kotlin.srcDirs += 'src/sharedTest/java'
}
但这似乎不起作用。
答案 0 :(得分:1)
默认设置是让Kotlin源集对Java编译器和IDE可见:
android {
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
test.java.srcDirs += 'src/test/kotlin'
test.java.srcDirs += 'src/sharedTest/java'
androidTest.java.srcDirs += 'src/sharedTest/java'
}
}
您不需要自行配置Kotlin源集。
答案 1 :(得分:0)
如果您的项目同时包含 java 和 kotlin 代码,则关键是:
src/{folderName}/java
和
src/{folderName}/kotlin
其中{folderName}是:test,androidTest,sharedTest或其他。
我用:
android {
sourceSets {
androidTest.java.srcDirs += "src/androidTest/kotlin"
androidTest.java.srcDirs += "src/sharedTest/java"
androidTest.java.srcDirs += "src/sharedTest/kotlin"
test.java.srcDirs += "src/test/kotlin"
test.java.srcDirs += "src/sharedTest/java"
test.java.srcDirs += "src/sharedTest/kotlin"
}
}
这是一些不一致的原因,因为您可以将所有java和kotlin代码保持在相同的位置:
main/java
。目录