61 lines
1.0 KiB
Go
61 lines
1.0 KiB
Go
//go:build docker
|
|
// +build docker
|
|
|
|
package feature
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/goravel/framework/facades"
|
|
"github.com/goravel/framework/support/file"
|
|
)
|
|
|
|
func TestMain(m *testing.M) {
|
|
database, err := facades.Testing().Docker().Database()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
if err := database.Build(); err != nil {
|
|
panic(err)
|
|
}
|
|
if err := database.Migrate(); err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
cache, err := facades.Testing().Docker().Cache("redis")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
if err := cache.Build(); err != nil {
|
|
panic(err)
|
|
}
|
|
if err := cache.Ready(); err != nil {
|
|
panic(err)
|
|
}
|
|
facades.Config().Add("database.redis.default.port", cache.Config().Port)
|
|
|
|
go func() {
|
|
if err := facades.Route().Run(); err != nil {
|
|
facades.Log().Errorf("Route run error: %v", err)
|
|
}
|
|
}()
|
|
|
|
time.Sleep(1 * time.Second)
|
|
|
|
exit := m.Run()
|
|
|
|
if err := file.Remove("storage"); err != nil {
|
|
panic(err)
|
|
}
|
|
if err := database.Shutdown(); err != nil {
|
|
panic(err)
|
|
}
|
|
if err := cache.Shutdown(); err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
os.Exit(exit)
|
|
}
|