java – 使用kotlin时在单元测试和仪器测试之间共享代码

类似的问题:
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'
}

但这似乎不起作用.

最佳答案 默认设置是使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源集.

点赞