material_manage_system/internal/testutil/testdb.go
2026-09-15 16:08:18 +08:00

29 lines
568 B
Go

package testutil
import (
"database/sql"
"os"
"testing"
_ "github.com/go-sql-driver/mysql"
)
// OpenTestDB opens the isolated MySQL database configured for integration tests.
func OpenTestDB(t *testing.T) *sql.DB {
t.Helper()
dsn := os.Getenv("TEST_DB_DSN")
if dsn == "" {
t.Skip("TEST_DB_DSN is not configured")
}
db, err := sql.Open("mysql", dsn)
if err != nil {
t.Fatalf("open test database: %v", err)
}
if err := db.Ping(); err != nil {
db.Close()
t.Fatalf("connect test database: %v", err)
}
t.Cleanup(func() { db.Close() })
return db
}