Files
platform/pkg/testutil/db.go

40 lines
826 B
Go
Raw Normal View History

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