我有一个具有这种项目结构的 GO 项目(每个包中有多个此类文件)。
- api
- userHandler.go
- userHandler_test.go
- database
- user.go
- user_test.go
在 user.go 中,我有 User 结构和创建/获取/更新用户的函数(我使用的是 GORM,但这不是问题)。在 user_test.go 中。
我想为每个不同的文件清理数据库(删除所有数据或处于某种状态),所以我尝试为每个文件创建 1 个套件(使用 Testify),然后使用 SetupSuite 函数但是行为似乎不是确定性的,可能我做错了什么。
所以我的问题是:
- 共享数据库连接的最佳方式是什么?使用全局变量是最好的选择吗?
- 在运行每个 file_test.go 之前,在数据库中创建表然后使用自定义数据初始化数据库的最佳方法是什么?
现在我也有一个奇怪的错误:运行
go test path/package1
go test path/package2
一切正常,但如果我运行(用于测试所有包)
cd path && go test ./...
我有似乎不是确定性的错误,这就是为什么我猜测数据库连接没有正确处理