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

类似的问题: 在Android Studio中的Android Instrumentation测试和单元测试之间共享代码

我的设置如下:

  • 包含单元测试的src/test文件夹。 这些可以是Java或Kotlin类
  • 包含仪器测试的src/androidTest 。 这些也可以是Java或Kotlin类
  • src/sharedTest是一个文件夹,它包含一系列在单元测试和测试测试之间共享的utils。

这个共享在Gradle中被定义为:

 sourceSets { test.java.srcDirs += 'src/sharedTest/java' androidTest.java.srcDirs += 'src/sharedTest/java' } 

这允许src/testsrc/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源代码集。