xormplus 8 年之前
父节点
当前提交
229287e75a
共有 1 个文件被更改,包括 78 次插入0 次删除
  1. 78 0
      xorm_test.go

+ 78 - 0
xorm_test.go

@@ -0,0 +1,78 @@
+package xorm
+
+import (
+	"errors"
+	"flag"
+	"os"
+	"testing"
+
+	_ "github.com/mattn/go-sqlite3"
+)
+
+var (
+	testEngine *Engine
+	dbType     string
+	connStr    string
+)
+
+func prepareSqlite3Engine() error {
+	//if testEngine == nil {
+	os.Remove("./test.db")
+	var err error
+	testEngine, err = NewEngine("sqlite3", "./test.db")
+	if err != nil {
+		return err
+	}
+	testEngine.ShowSQL(*showSQL)
+	//}
+	return nil
+}
+
+func prepareMysqlEngine() error {
+	if testEngine == nil {
+		var err error
+		testEngine, err = NewEngine("mysql", connStr)
+		if err != nil {
+			return err
+		}
+		testEngine.ShowSQL(*showSQL)
+		_, err = testEngine.Exec("DROP DATABASE")
+		if err != nil {
+			return err
+		}
+	}
+	return nil
+}
+
+func prepareEngine() error {
+	if dbType == "sqlite" {
+		return prepareSqlite3Engine()
+	} else if dbType == "mysql" {
+		return prepareMysqlEngine()
+	}
+	return errors.New("Unknown test database driver")
+}
+
+var (
+	db      = flag.String("db", "sqlite", "the tested database")
+	showSQL = flag.Bool("show_sql", true, "show generated SQLs")
+)
+
+func TestMain(m *testing.M) {
+	flag.Parse()
+
+	if db != nil {
+		dbType = *db
+	}
+
+	if err := prepareEngine(); err != nil {
+		panic(err)
+	}
+	os.Exit(m.Run())
+}
+
+func TestPing(t *testing.T) {
+	if err := testEngine.Ping(); err != nil {
+		t.Fatal(err)
+	}
+}