【问题标题】:Run before ALL integration tests在所有集成测试之前运行
【发布时间】:2020-01-17 07:42:28
【问题描述】:

Go 有能力在所有测试之前运行一些代码吗?我知道 Go 提供了 TestMain(),但它的包范围是 func,并且只会在她所在的包中设置和拆除测试。

但我想在所有测试之前运行一些 docker 测试容器,当然,在所有测试完成后将其拆除。

【问题讨论】:

  • 没有专门使用 Go 工具,如果这正是你所追求的,请忽略这一点;但是,您可以查看 Makefiles,它可以提供基于 *nix 终端命令的构建脚本系统。我之前曾将其用于集成测试(启动容器,运行 go test,无论测试结果如何都拆除容器)。
  • init() 在包中的所有测试之前运行。

标签: go integration-testing go-testing


【解决方案1】:

在您的测试中编写 Setup() 和 TearDown() 函数。如果您使用的是表格驱动测试或普通测试,请在每个测试前后调用Setup() 和TearDown()。

你也可以使用一个测试suite,它做了类似的事情,它提供了这个功能,就像一个库: https://godoc.org/github.com/stretchr/testify/suite

【讨论】:

    猜你喜欢
    • 2020-03-04
    • 2016-08-07
    • 2023-04-11
    • 2014-01-12
    • 2020-01-02
    • 2013-03-20
    • 2015-06-01
    • 1970-01-01
    • 2019-07-19
    相关资源
    最近更新 更多