从 Go 1.4 开始,您可以实现设置/拆卸(无需在每次测试之前/之后复制您的功能)。该文档概括这里的主要部分:
TestMain 运行在主 goroutine 中,并且可以围绕对 m.Run 的调用进行任何必要的设置和拆卸。然后它应该使用 m.Run 的结果调用 os.Exit
我花了一些时间才弄清楚这意味着如果测试包含一个函数,
func TestMain(m *testing.M)那么将调用该函数而不是运行测试。在这个函数中,我可以定义测试将如何运行。例如我可以实现全局设置和拆卸:
golangfunc TestMain(m *testing.M) { setup() pre := m.Run() shutdown() os.Exit(pre)}
可以在此处找到其他一些示例。
在最新版本中添加到 Go 测试框架的 TestMain 功能是几个测试用例的简单解决方案。TestMain 提供了一个全局钩子来执行设置和关闭,控制测试环境,在子进程中运行不同的代码,或检查测试代码泄漏的资源。大多数包不需要 TestMain,但在需要时它是一个受欢迎的补充。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)