JUnit5毕竟没有在Kotlin上执行
如果我运行下面的JUnit5毕竟没有在Kotlin上执行,junit,kotlin,junit5,Junit,Kotlin,Junit5,如果我运行下面的子类单元,我希望在测试之后执行@AfterAll。然而,结果只是这样: init in super class init in sub class test OK 我不明白为什么不调用超类#stop()。我知道,@毕竟需要一个静态方法或生命周期。每个类,但这是给定的 超级级 import org.junit.jupiter.api.AfterAll import org.junit.jupiter.api.TestInstance @TestInstance(TestInst
子类
单元,我希望在测试之后执行@AfterAll
。然而,结果只是这样:
init in super class
init in sub class
test OK
我不明白为什么不调用超类#stop()
。我知道,@毕竟
需要一个静态方法或生命周期。每个类
,但这是给定的
超级级
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")
}
}
子类
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")
}
}
在JUnit5测试中使用而不是org.junit.Test
(也请检查)
以下工作将按预期进行:
import org.junit.jupiter.api.Test
open class SubClass : SuperClass() {
init {
println("init in sub class")
}
@Test
fun shouldRun() {
println("test OK")
}
}
不知道为什么我们没有将
@Test
重命名为@Te5t
。。。或@T357
;-)阿格,该死的…谢谢你的快速回答。我很高兴我包括了进口。是的,这有点帮助;-)但老实说,我也经历过。。。也许@Te5t
真的会让事情变得更容易;-)