Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 我可以在Koltin多平台项目中使用Spock测试吗?如果是,如何在gradle.build.kts中设置?_Kotlin_Spock_Kotlin Multiplatform - Fatal编程技术网

Kotlin 我可以在Koltin多平台项目中使用Spock测试吗?如果是,如何在gradle.build.kts中设置?

Kotlin 我可以在Koltin多平台项目中使用Spock测试吗?如果是,如何在gradle.build.kts中设置?,kotlin,spock,kotlin-multiplatform,Kotlin,Spock,Kotlin Multiplatform,我尝试在Kotlin多平台项目中使用Spock测试框架,但失败了,gradle脚本: plugins { val kotlinVersion = "1.4.30" kotlin("multiplatform") version kotlinVersion application kotlin("plugin.serialization") version kotlinVersion groovy

我尝试在Kotlin多平台项目中使用Spock测试框架,但失败了,gradle脚本:

plugins {
    val kotlinVersion = "1.4.30"
    kotlin("multiplatform") version kotlinVersion
    application
    kotlin("plugin.serialization") version kotlinVersion
    groovy // for spock
}
repositories {
    // ...
    maven("https://jitpack.io") // for spock
}
kotlin {
    jvm {withJava()}
    js {/*...*/}
    sourceSets {
        val commonMain by getting {
            dependencies {/*...*/}
        }
        val commonTest by getting {
            dependencies {
                implementation(kotlin("test-common"))
                implementation(kotlin("test-annotations-common"))
            }
        }
        val jvmMain by getting {
            dependencies {/*...*/}
        }
        val jvmTest by getting {
            dependencies {
                dependsOn(commonTest)
                implementation(kotlin("test"))
                implementation(kotlin("test-junit"))
                // implementation(kotlin("test-junit5"))
                // for spock
                implementation("org.spockframework.spock:spock-core:spock-1.3")
                implementation("org.codehaus.groovy:groovy-all:3.0.7")
            }
        }
        val jsMain by getting {
            dependencies {/*...*/}
        }
    }
}
我用
groovy-2.5
Junit5
尝试了
spock-1.3
spock-2.0-M4
,都因依赖性问题而失败,即使测试可以运行,它告诉我:没有收到测试事件,更重要的是:

I无法仅为测试创建groovy源代码折叠。(该目录类似于普通文件夹,而不是源代码或测试文件夹)


如何配置依赖项或
gradle.build.kts
文件?非常感谢您的帮助

我现在可以使Spock与现有的Ktor项目一起工作,并将下面的代码添加到我的
gradle.build.kts

plugins {
    groovy
}

repositories {
    maven("https://jitpack.io")
}

dependencies {
    testImplementation("org.codehaus.groovy:groovy-all:2.4.15")
    testImplementation("org.spockframework.spock:spock-core:spock-1.3")
}

sourceSets {
    main {
        withConvention(GroovySourceSet::class) {
            groovy {
                setSrcDirs(listOf("src"))
            }
        }
    }
    test {
        withConvention(GroovySourceSet::class) {
            groovy {
                setSrcDirs(listOf("test"))
            }
        }
    }
}

tasks.test {
    useJUnitPlatform()
    testLogging {
        events("passed", "skipped", "failed")
    }
}
但是,我无法通过Spock测试来理解Koltin多平台项目,我将在制作脚本时发布脚本