首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >去朗测试事件的听者?

去朗测试事件的听者?
EN

Stack Overflow用户
提问于 2014-05-16 15:32:38
回答 3查看 1.5K关注 0票数 3

这个问题是关于Go语言测试的。您可能知道,大多数主流语言都有自己的xUnit框架。这些框架中的大多数都能够侦听测试运行事件(例如,开始测试用例、完成测试用例、测试失败等等)。这通常称为测试事件侦听器,主要用于编写框架的第三方扩展。

我的问题是:对于标准的Go语言测试框架(http://golang.org/pkg/testing/)?是否有类似的附加方式?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-16 23:46:49

不是从盒子里拿出来的,但你自己装起来应该不难。任何名为init的函数都保证在任何其他函数之前运行,对于测试也是如此。

在您的测试文件中:

代码语言:javascript
复制
var listener pkg.EventListener
func init() {
    pkg.SetupMyFramework()
    listener = pkg.Listener()
}

然后在任何测试中

代码语言:javascript
复制
func TestXxx(t *testing.T) {
    listener.Dispatch(pkg.MakeEvent("TestXxx", pkg.TestStarted))

    err := DoSomething()
    if err != nil {
        listener.Dispatch(pkg.MakeEvent("TestXxx", pkg.TestFailed))
        t.Fatal("Test failed")
    }

    listener.Dispatch(pkg.MakeEvent("TestXxx", pkg.TestPassed))
}

当然,您可以任意扩展它(使用通道,使包装器函数围绕Fatal使其更少冗长,等等),但这是如何集成它的要点。

票数 1
EN

Stack Overflow用户

发布于 2014-05-16 16:17:36

就我所知没有。它将有助于了解您正在努力完成什么,以便您需要这种能力?

票数 1
EN

Stack Overflow用户

发布于 2018-02-05 00:24:05

go1.10即将发布,其中一个新特性是go test -json (release https://tip.golang.org/doc/go1.10#test)。

使用go test -json,您可以解析测试输出并将其发送到第三方框架。

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

https://stackoverflow.com/questions/23699237

复制
相关文章

相似问题

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