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
真的会让事情变得更容易;-)