如何在运行时获取测试环境

huangapple go评论82阅读模式
英文:

How to get test environment at run time

问题

我想检查代码是否正在运行go test,以便我可以进行一些配置。

是否有函数可以做到这一点?
像这样:

runtime.IsBeingTested()

英文:

I want to check if codes are running for the go test,so that I could make some configurations.

Is there any function to do that?
Like:

runtime.IsBeingTested()

答案1

得分: 5

只需在测试的init函数中指定运行测试。例如,在pkg.go文件中:

package pkg

var isTesting = false

// ...

在pkg_test.go文件中:

package pkg

func init() {
    isTesting = true
}

// ...

这种技术不仅适用于bool类型,还适用于任何数据或函数。如果你的包中有一些变量(在你的情况下是配置变量),你可以在init函数中进行覆盖。

英文:

Just specify that you run a test in test's init. For example, in pkg.go:

package pkg

var isTesting = false

// ...

And in pkg_test.go:

package pkg

func init() {
    isTesting = true
}

// ...

This technique can be used not just with bools but with any data or function. If you have some variable in your package (in your case, a configuration variable), you can just override it in init.

huangapple
  • 本文由 发表于 2015年2月12日 19:28:44
  • 转载请务必保留本文链接:https://go.coder-hub.com/28476307.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定