kotlintest中如何使用beforeProject?
How to use beforeProject in kotlintest?
我实现了一个 TestListener
如下:
object IntegrationTest: TestListener {
override fun beforeProject() {
println("integration tests - beforeProject")
}
override fun beforeSpec(description: Description, spec: Spec) {
println("integration tests - beforeSpec")
}
}
并在测试中使用它:
class SimpleTest: StringSpec() {
override fun listeners() = listOf(IntegrationTest)
init {
"it - 1" {
println("it - 1")
}
"it - 2" {
println("it - 2")
}
}
}
问题是 integration tests - beforeProject
从未在输出中打印出来。
结果是:
integration tests - beforeSpec
it - 1
it - 2
我在 intellij 中尝试过并使用 gradle CLI。我错过了什么吗?
beforeProject
必须 运行 在发现任何测试之前,否则它并不是真正在 项目 之前,而是 "before any tests have executed" (区别在您的使用中可能并不重要 class,但 KotlinTest 保留了区别)。
因此,在添加到测试的侦听器中覆盖该方法 class 不会执行任何操作(如您所见)。
因此,您需要将侦听器添加到 ProjectConfig
,这是项目范围的配置。您可以通过 subclassing AbstractProjectConfig
并将其放在一个特殊的包名称中来完成此操作,如下所示:
套餐io.kotlintest.provided
object ProjectConfig : AbstractProjectConfig() {
// add listeners here
}
在此处查看完整文档:
https://github.com/kotlintest/kotlintest/blob/master/doc/reference.md#project-config
我实现了一个 TestListener
如下:
object IntegrationTest: TestListener {
override fun beforeProject() {
println("integration tests - beforeProject")
}
override fun beforeSpec(description: Description, spec: Spec) {
println("integration tests - beforeSpec")
}
}
并在测试中使用它:
class SimpleTest: StringSpec() {
override fun listeners() = listOf(IntegrationTest)
init {
"it - 1" {
println("it - 1")
}
"it - 2" {
println("it - 2")
}
}
}
问题是 integration tests - beforeProject
从未在输出中打印出来。
结果是:
integration tests - beforeSpec
it - 1
it - 2
我在 intellij 中尝试过并使用 gradle CLI。我错过了什么吗?
beforeProject
必须 运行 在发现任何测试之前,否则它并不是真正在 项目 之前,而是 "before any tests have executed" (区别在您的使用中可能并不重要 class,但 KotlinTest 保留了区别)。
因此,在添加到测试的侦听器中覆盖该方法 class 不会执行任何操作(如您所见)。
因此,您需要将侦听器添加到 ProjectConfig
,这是项目范围的配置。您可以通过 subclassing AbstractProjectConfig
并将其放在一个特殊的包名称中来完成此操作,如下所示:
套餐io.kotlintest.provided
object ProjectConfig : AbstractProjectConfig() {
// add listeners here
}
在此处查看完整文档: https://github.com/kotlintest/kotlintest/blob/master/doc/reference.md#project-config