github.com/angryronald/go-kit@v0.0.0-20240505173814-ff2bd9c79dbf/generic/repository/sql/repositorytest/main_test.go (about) 1 package repositorytest 2 3 import ( 4 "os" 5 "testing" 6 7 "gorm.io/gorm" 8 9 _ "github.com/lib/pq" 10 "github.com/ory/dockertest" 11 "github.com/sirupsen/logrus" 12 13 "github.com/angryronald/go-kit/test/docker/postgres" 14 ) 15 16 var db *gorm.DB 17 18 func TestMain(m *testing.M) { 19 pool, err := dockertest.NewPool("") 20 if err != nil { 21 logrus.Fatalf("Could not connect to Docker: %s\n", err) 22 } 23 24 var postgresResource *dockertest.Resource 25 db, postgresResource = postgres.GenerateInstance(pool) 26 if db != nil { 27 logrus.Debugf("Success generate postgres instance\n") 28 } 29 30 db.AutoMigrate(&TestModel{}) 31 db.AutoMigrate(&ImmutableTestModel{}) 32 33 code := m.Run() // execute all the tests 34 35 // Delete the Docker container 36 if err := pool.Purge(postgresResource); err != nil { 37 logrus.Fatalf("Could not purge postgres resource: %s\n", err) 38 } 39 40 defer os.Exit(code) 41 }