Files
platform/web/testutil/db.go

40 lines
782 B
Go

package testutil
import (
g"platform/web/globals"
m"platform/web/models"
q "platform/web/queries"
"testing"
"github.com/glebarez/sqlite"
"gorm.io/gorm"
)
// SetupDBTest 创建一个基于 SQLite 内存数据库的 GORM 连接
func SetupDBTest(t *testing.T) *gorm.DB {
// 使用 SQLite 内存数据库
gormDB, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{})
if err != nil {
t.Fatalf("gorm 打开 SQLite 内存数据库失败: %v", err)
}
// 自动迁移数据表结构
err = gormDB.AutoMigrate(
&m.User{},
&m.Whitelist{},
&m.Resource{},
&m.ResourcePss{},
&m.Proxy{},
&m.Channel{},
)
if err != nil {
t.Fatalf("自动迁移表结构失败: %v", err)
}
// 设置全局数据库连接
q.SetDefault(gormDB)
g.DB = gormDB
return gormDB
}