0

我正在使用 Gradle 和 IntelliJ 中的 Kotest 来测试一个新项目;

这些是我在 gradle 构建文件中的版本配置:

    ext.kotlin_version = '1.5.10'
    ext.kotest_version = '4.6.0'
    ext.kotest_spring_version = '4.4.3'

我的依赖:

    // KotlinTest
    testImplementation("io.kotest:kotest-assertions-core:$kotest_version")
    testImplementation("io.kotest:kotest-property:$kotest_version")
    testImplementation("io.kotest:kotest-runner-junit5:$kotest_version")
    testImplementation("io.kotest.extensions:kotest-assertions-kotlinx-datetime-jvm:1.0.0")
    testImplementation("io.kotest.extensions:kotest-extensions-spring:1.0.0")

和插件:

id("io.kotest") version "0.3.8"

这一切都可以在 Gradle 中正常工作。但是我有来自 IntelliJ 的奇怪行为。我的 IntelliJ 版本是IntelliJ IDEA 2021.1.2 (Ultimate Edition). 插件是kotest-plugin-intellij (1.1.36-IC-2021.1).

所以我的行为是,从我可以按下运行图标的方法的测试类中,它会开始一个测试(或者至少看起来像)但是仅仅一秒钟后它已经成功完成但没有测试被执行。例如,一个简单的测试用例是这个(测试类 extends WordSpec):

    init {
        "Ping" should {
            "Basic ping test" {
                mockMvc.perform(
                    get("/rest/v1/ping")
                        .contentType("application/json")
                        .content("")
                ).andExpect(status().isOk());
            }
        }

    }

我没有看到这两个Ping和下一个Basic ping test都执行了,我只能看到它Ping已经成功执行,真正的测试从未跟随。即使我故意让测试失败,Gradle 也会失败,但 IntelliJ 会告诉我一切都很好......

但是,如果我尝试运行整个程序包,它确实可以工作。所以右键单击包,然后运行,然后我选择带有Kotest绿色标志的选项,然后测试都开始执行,也是我上面粘贴的那个。

我能做些什么来解决这个问题?这是版本不匹配(但是我是最新的)?我也尝试降级,但这变得一团糟,因为我必须降级 Gradle 版本、Kotlin 版本和 Gradle 插件版本......然后根据配置,在尝试从 Gradle 构建时开始出现其他异常错误......

4

0 回答 0