xorm_test.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package xorm
  2. import (
  3. "errors"
  4. "flag"
  5. "os"
  6. "testing"
  7. _ "github.com/mattn/go-sqlite3"
  8. )
  9. var (
  10. testEngine *Engine
  11. dbType string
  12. connStr string
  13. )
  14. func prepareSqlite3Engine() error {
  15. //if testEngine == nil {
  16. os.Remove("./test.db")
  17. var err error
  18. testEngine, err = NewEngine("sqlite3", "./test.db")
  19. if err != nil {
  20. return err
  21. }
  22. testEngine.ShowSQL(*showSQL)
  23. //}
  24. return nil
  25. }
  26. func prepareMysqlEngine() error {
  27. if testEngine == nil {
  28. var err error
  29. testEngine, err = NewEngine("mysql", connStr)
  30. if err != nil {
  31. return err
  32. }
  33. testEngine.ShowSQL(*showSQL)
  34. _, err = testEngine.Exec("DROP DATABASE")
  35. if err != nil {
  36. return err
  37. }
  38. }
  39. return nil
  40. }
  41. func prepareEngine() error {
  42. if dbType == "sqlite" {
  43. return prepareSqlite3Engine()
  44. } else if dbType == "mysql" {
  45. return prepareMysqlEngine()
  46. }
  47. return errors.New("Unknown test database driver")
  48. }
  49. var (
  50. db = flag.String("db", "sqlite", "the tested database")
  51. showSQL = flag.Bool("show_sql", true, "show generated SQLs")
  52. )
  53. func TestMain(m *testing.M) {
  54. flag.Parse()
  55. if db != nil {
  56. dbType = *db
  57. }
  58. if err := prepareEngine(); err != nil {
  59. panic(err)
  60. }
  61. os.Exit(m.Run())
  62. }
  63. func TestPing(t *testing.T) {
  64. if err := testEngine.Ping(); err != nil {
  65. t.Fatal(err)
  66. }
  67. }