首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用beforeProject在kotlintest?

如何使用beforeProject在kotlintest?
EN

Stack Overflow用户
提问于 2018-10-31 22:21:54
回答 1查看 795关注 0票数 1

我实现了一个TestListener,如下所示:

代码语言:javascript
复制
object IntegrationTest: TestListener {
    override fun beforeProject() {
        println("integration tests - beforeProject")
    }

    override fun beforeSpec(description: Description, spec: Spec) {
        println("integration tests - beforeSpec")
    }
}

并在测试中使用:

代码语言:javascript
复制
class SimpleTest: StringSpec() {

    override fun listeners() = listOf(IntegrationTest)

    init {
        "it - 1" {
            println("it - 1")
        }

        "it - 2" {
            println("it - 2")
        }
    }
}

问题是integration tests - beforeProject从未打印在输出中。

结果是:

代码语言:javascript
复制
integration tests - beforeSpec
it - 1
it - 2

我在intellij上试用了它,并使用了gradle CLI。我是不是遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-01 22:14:31

beforeProject必须在发现任何测试之前运行,否则它实际上并不是在项目之前,而是在“任何测试执行之前”(在您的use类中,这种区别可能并不重要,但KotlinTest保持了这种区别)。

因此,在添加到测试类的侦听器中重写该方法不会执行任何操作(正如您已经看到的)。

因此,您需要将侦听器添加到ProjectConfig中,这是项目范围内的配置。为此,您可以对AbstractProjectConfig进行子类化,并将其放入一个特殊的包名,如下所示:

封装io.kotlintest.provided

代码语言:javascript
复制
object ProjectConfig : AbstractProjectConfig() {
  // add listeners here
}

参见这里的完整文档:https://github.com/kotlintest/kotlintest/blob/master/doc/reference.md#project-config

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53092761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档