diff options
Diffstat (limited to 'models/unit_tests.go')
-rw-r--r-- | models/unit_tests.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/models/unit_tests.go b/models/unit_tests.go index b4b36ba6b7..315627d8e0 100644 --- a/models/unit_tests.go +++ b/models/unit_tests.go @@ -7,13 +7,31 @@ package models import ( "testing" + "github.com/go-xorm/core" "github.com/go-xorm/xorm" "github.com/stretchr/testify/assert" + "gopkg.in/testfixtures.v2" ) // NonexistentID an ID that will never exist const NonexistentID = 9223372036854775807 +// CreateTestEngine create in-memory sqlite database for unit tests +// Any package that calls this must import github.com/mattn/go-sqlite3 +func CreateTestEngine(fixturesDir string) error { + var err error + x, err = xorm.NewEngine("sqlite3", "file::memory:?cache=shared") + if err != nil { + return err + } + x.SetMapper(core.GonicMapper{}) + if err = x.StoreEngine("InnoDB").Sync2(tables...); err != nil { + return err + } + + return InitFixtures(&testfixtures.SQLite{}, fixturesDir) +} + // PrepareTestDatabase load test fixtures into test database func PrepareTestDatabase() error { return LoadFixtures() |