Files
MyGoNavi/internal/db/oceanbase_oracle_live_test.go
Syngnat f41a15c7b8 feat(data-sync/oceanbase): 拆分比对入口并修复 OceanBase Oracle 连接
- 数据同步:新增表结构比对、数据比对两个独立工具入口
- 比对模式:为 DataSyncModal 增加只读入口展示与模式化文案
- OceanBase:Oracle 租户改用 OB Oracle 专用 MySQL-wire 连接路径
- 连接表单:允许 OceanBase Oracle Service Name 留空,仅 TNS 场景需要填写
- 驱动提示:revision 不匹配提示收敛到驱动管理,不再在普通数据源入口弹出
- 测试覆盖:补充数据比对入口、OceanBase Oracle、driver-agent 提示边界测试
2026-06-16 12:15:16 +08:00

44 lines
1.0 KiB
Go

//go:build oceanbase_live
package db
import (
"os"
"strconv"
"testing"
"GoNavi-Wails/internal/connection"
)
func TestOceanBaseOracleLive(t *testing.T) {
port, err := strconv.Atoi(os.Getenv("GONAVI_OB_PORT"))
if err != nil {
t.Fatalf("invalid GONAVI_OB_PORT: %v", err)
}
ob := &OceanBaseDB{}
cfg := connection.ConnectionConfig{
Type: "oceanbase",
Host: os.Getenv("GONAVI_OB_HOST"),
Port: port,
User: os.Getenv("GONAVI_OB_USER"),
Password: os.Getenv("GONAVI_OB_PASSWORD"),
Database: os.Getenv("GONAVI_OB_DATABASE"),
ConnectionParams: os.Getenv("GONAVI_OB_PARAMS"),
OceanBaseProtocol: "oracle",
Timeout: 10,
}
if err := ob.Connect(cfg); err != nil {
t.Fatalf("connect failed: %v", err)
}
defer ob.Close()
rows, fields, err := ob.Query("select 1 from dual")
if err != nil {
t.Fatalf("query failed: %v", err)
}
if len(fields) != 1 || len(rows) != 1 {
t.Fatalf("unexpected result fields=%v rows=%v", fields, rows)
}
}