在我们的 Android 项目中,我们使用 Kotlin 编码并以 Java 1.6 为目标。但是,由于某些 JUnit5 功能需要它(接口(interface)中的静态方法),我们在测试中被迫使用 java 1.8。
是否可以以不同于生产代码的方式编译测试?
我们试图通过将其添加到我们的 build.gradle 中将 jvmTarget 提高到 1.8:
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
jvmTarget = "1.8"
}
}
这也提高了生产代码的 jvmTarget,但我们只希望它用于我们的测试。 Docs表明可以像这样为测试指定它:
compileReleaseUnitTestKotlin{
kotlinOptions {
jvmTarget = "1.8"
}
}
很遗憾,build.gradle
无法编译。
最佳答案
Kotlin 文档提到 how to do它仅用于测试。
常规 DSL:
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
Kotlin DSL:
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
val compileTestKotlin: KotlinCompile by tasks
compileTestKotlin.kotlinOptions.jvmTarget = "1.8"
关于android - 如何将 Kotlin 代码编译到 jvmTarget ="1.8"进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54331113/