mysql - 如何在我的 Go 程序中运行测试之前获取数据库模式

标签 mysql sql database go

我必须为数据库交互运行 Go 测试。 数据库模式位于 .sql 文件中。 我有一个包含 main 包的文件夹 A,我在 A 中有 3 个文件夹 B、C 和 D,它们分别包含包 B、C 和 D。 B、C、D 中有测试文件,但 A 没有任何测试。我想要一种方法,这样我就可以做一个

go test ./...

从 A 开始,我的所有测试都在将架构采购到 mysql 之后运行。

我尝试在 A 中创建一个 main_test.go 文件并在其中放置一个 TestMain 函数。但它不起作用。

最佳答案

你可以在 main_test.go 上使用 init 函数

package main

    func init(){
      // load and execute your db schema here. 
    }

https://golang.org/ref/spec#Package_initialization

main 包上的 init() 将在包初始化时执行

关于mysql - 如何在我的 Go 程序中运行测试之前获取数据库模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57369838/

相关文章:

数据库;求和 2 个字段,然后将它们相加

mysql - SQL 查询 - 在小于或等于日期加入

php - 将两个PHP sql语句合并为一个

mysql - Group By 中的第一行与最后一行

php - 在一行中加入多个相同列的查询

mysql - SQL插入多个记录/更新现有(在单个查询中)

mysql - 使用连接表在 Pivot MySQL 中进行错误分组

sql - Entity Framework 代码优先 : querying a view with no primary key

php - 为什么从 URL 参数值保存数据到 MySQL 失败?

database - 如何有效连接3张表 M :N