package main import ( "os" "path/filepath" "testing" "nex/backend/internal/config" "nex/backend/internal/database" "go.uber.org/zap" ) func TestDesktop_InitMigrationsWithoutSourceTree(t *testing.T) { tmpDir := t.TempDir() origDir, err := os.Getwd() if err == nil { defer func() { if chdirErr := os.Chdir(origDir); chdirErr != nil { t.Logf("无法恢复工作目录: %v", chdirErr) } }() } if chdirErr := os.Chdir(tmpDir); chdirErr != nil { t.Skipf("无法切换到临时目录: %v", chdirErr) } cfg := &config.DatabaseConfig{ Driver: "sqlite", Path: filepath.Join(tmpDir, "nex-test.db"), MaxIdleConns: 5, MaxOpenConns: 10, ConnMaxLifetime: 0, } zapLogger := zap.NewNop() db, err := database.Init(cfg, zapLogger) if err != nil { t.Fatalf("在无源码目录环境下数据库初始化应成功,但返回错误: %v", err) } database.Close(db) }