gpt4 book ai didi

JUnit 5 AfterAll 未在 Kotlin 上执行

转载 作者:行者123 更新时间:2023-12-02 12:36:07 25 4
gpt4 key购买 nike

如果我运行下面的 SubClass 单元,我希望 @AfterAll 在测试之后执行。然而,输出就是这样:

init in super class
init in sub class
test OK

我不明白为什么不调用 SuperClass#stop()。我知道 @AfterAll 需要静态方法或 Lifecycle.PER_CLASS 但这是给定的。

父类(super class)

import org.junit.jupiter.api.AfterAll
import org.junit.jupiter.api.TestInstance

@TestInstance(TestInstance.Lifecycle.PER_CLASS)
open class SuperClass {

init {
println("init in super class")
}

@AfterAll
fun stop(){
println("service stopped")
}
}

子类

import org.junit.Test

open class SubClass : SuperClass() {

init {
println("init in sub class")
}

@Test
fun shouldRun() {
println("test OK")
}
}

最佳答案

使用org.junit.jupiter.api.Test在你的 JUnit5 测试中代替 org.junit.Test(同时检查 JUnit 5 User Guide - Annotations)。

以下将按预期工作:

import org.junit.jupiter.api.Test

open class SubClass : SuperClass() {
init {
println("init in sub class")
}

@Test
fun shouldRun() {
println("test OK")
}
}

关于JUnit 5 AfterAll 未在 Kotlin 上执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51965064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com