Groovy中的测试类看不到Kotline中的测试类

pbpqsu0x  于 2022-09-21  发布在  Kotlin
关注(0)|答案(1)|浏览(176)

我有一个Kotlin插件的Gradle项目。

在我的项目中,我使用groovy和Spock进行测试。测试中使用的实用程序类之一是用kotlin编写的,我将其放在src/test/kotlin中

我正在尝试从groovy测试(Spock规范)中使用这个类,我看到首先运行的是“complisteTestKotlin”任务,并编译我的实用程序类,但它仍然失败,因为它看不到它。

我如何才能解决这种情况?如何向groovy测试的编译类路径添加Build/Class/kotlin/test/?

ufj5ltwl

ufj5ltwl1#

问题是,默认情况下,compileTestGroovy不包括build/classes/kotlin/test文件夹,因此从Groovy测试中看不到您的Kotlin util类。

为了修复它,您可以手动将Kotlin测试源添加到compileTestGroovy的类路径中。将以下内容添加到您的build.gradle

compileTestGroovy.classpath += files(compileTestKotlin.destinationDir)
// in more recent versions it must be
compileTestGroovy.classpath += files(compileTestKotlin.destinationDirectory)

如果您的构建文件是build.gradle.kts,请添加以下内容

// make groovy test code depend on kotlin test code
tasks.named<GroovyCompile>("compileTestGroovy") {
    classpath += files(tasks.compileTestKotlin)
}

相关问题