站长网 语言 在 Go 中运用 Dockertest 进行集成测试

在 Go 中运用 Dockertest 进行集成测试

进行集成测试(或系统测试)通常意味着让数据库填充数据,像 redis、elasticsearch 等,通常,我们的软件与之交互的任何基础设施都可以工作。 最常见的方法是复制我们的生产基础设施,其实用容器来实现还是比较容易的,比如 docker 容器。 我们可以为需要复制

进行集成测试(或系统测试)通常意味着让数据库填充数据,像 redis、elasticsearch 等,通常,我们的软件与之交互的任何基础设施都可以工作。
 
最常见的方法是复制我们的生产基础设施,其实用容器来实现还是比较容易的,比如 docker 容器。
 
我们可以为需要复制的每个服务设置和运行一个容器,我们可以使用 docker-compose 对其进行编排并创建一些 makefile 或只是一个简单的脚本来准备基础设施并运行集成测试。
 
如果你的测试是独立的(它们应该是独立的),你必须找到在测试之间“重新启动”基础设施服务的方法,这可能很难通过分离的基础设施设置和测试来实现(基础设施是在脚本中设置的,而测试在 Go 文件中)
 
01 dockertest
如果你使用的是 Go,则可以使用 dockertest,一个可以管理和编排 Go 测试文件中的容器的库。
 
从 Go 文件管理测试基础设施容器,允许我们控制在每个测试中需要的服务(例如,某些包正在使用数据库而不是 Redis,为这个测试运行 Redis 没有意义)
 
安装 dockertest
 
要安装 dockertest,只需运行:
 
go get -u github.com/ory/dockertest/v3
使用 dockertest
 
使用 dockertest 设置基础设施的最简单方法是在测试文件的TestMain 函数中添加设置代码。
 
TestMain 是在包中运行测试之前调用的函数,更多信息参考这里。

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/biancheng/yuyan/2021/1206/33702.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部