@@ -17,7 +17,7 @@ import (
1717 "xorm.io/xorm/schemas"
1818)
1919
20- var fixtures * testfixtures.Loader
20+ var fixturesLoader * testfixtures.Loader
2121
2222// GetXORMEngine gets the XORM engine
2323func GetXORMEngine (engine ... * xorm.Engine ) (x * xorm.Engine ) {
@@ -30,11 +30,11 @@ func GetXORMEngine(engine ...*xorm.Engine) (x *xorm.Engine) {
3030// InitFixtures initialize test fixtures for a test database
3131func InitFixtures (opts FixturesOptions , engine ... * xorm.Engine ) (err error ) {
3232 e := GetXORMEngine (engine ... )
33- var testfiles func (* testfixtures.Loader ) error
33+ var fixtureOptionFiles func (* testfixtures.Loader ) error
3434 if opts .Dir != "" {
35- testfiles = testfixtures .Directory (opts .Dir )
35+ fixtureOptionFiles = testfixtures .Directory (opts .Dir )
3636 } else {
37- testfiles = testfixtures .Files (opts .Files ... )
37+ fixtureOptionFiles = testfixtures .Files (opts .Files ... )
3838 }
3939 dialect := "unknown"
4040 switch e .Dialect ().URI ().DBType {
@@ -54,14 +54,14 @@ func InitFixtures(opts FixturesOptions, engine ...*xorm.Engine) (err error) {
5454 testfixtures .Database (e .DB ().DB ),
5555 testfixtures .Dialect (dialect ),
5656 testfixtures .DangerousSkipTestDatabaseCheck (),
57- testfiles ,
57+ fixtureOptionFiles ,
5858 }
5959
6060 if e .Dialect ().URI ().DBType == schemas .POSTGRES {
6161 loaderOptions = append (loaderOptions , testfixtures .SkipResetSequences ())
6262 }
6363
64- fixtures , err = testfixtures .New (loaderOptions ... )
64+ fixturesLoader , err = testfixtures .New (loaderOptions ... )
6565 if err != nil {
6666 return err
6767 }
@@ -78,11 +78,9 @@ func InitFixtures(opts FixturesOptions, engine ...*xorm.Engine) (err error) {
7878func LoadFixtures (engine ... * xorm.Engine ) error {
7979 e := GetXORMEngine (engine ... )
8080 var err error
81- // Database transaction conflicts could occur and result in ROLLBACK
82- // As a simple workaround, we just retry 20 times.
83- for i := 0 ; i < 20 ; i ++ {
84- err = fixtures .Load ()
85- if err == nil {
81+ // (doubt) database transaction conflicts could occur and result in ROLLBACK? just try for a few times.
82+ for i := 0 ; i < 5 ; i ++ {
83+ if err = fixturesLoader .Load (); err == nil {
8684 break
8785 }
8886 time .Sleep (200 * time .Millisecond )
0 commit comments